这里这个重写父类方法没有显示调用父类的方法也算是重写了父类方法吗 ?

这里这个重写父类方法没有显示调用父类的方法也算是重写了父类方法吗 ?

不是说要显示调用了父类的方法才会生效吗?

http://img1.sycdn.imooc.com//climg/5d42ab4a000164a506740476.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。

1、当父类方法的功能不能满足不了需求时,可以在子类重写你父类的该方法

例:

class People():
    def show(self):
        print('我叫小明')
        
class Person(People):
    def show(self):
        print('我叫小丽')

P = Person()
P.show()   # 我叫小丽

2、在方法中调用父类的方法即继承父类中的方法,即子类中的run方法的功能包含父类中该方法的功能

例:

class People():
    def show(self):
        print('我叫小明')

class Person(People):
    def show(self):
        super(Person, self).show()
        print('我叫小丽')

P = Person()
P.show()
"""
我叫小明
我叫小丽
"""

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 五行缺木 提问者 #1
    老师, 你举的例子子类里面有显示的调用了父类的方法show,所以打印了父类中的信息, 但是我提问的代码里面子类的run是没有显示的调用了父类的方法啊。我是疑惑子类重写父类的方法中没有显示的调用父类的方法也能使用父类中被重写的方法吗?
    2019-08-02 09:30:41
  • 好帮手慕美 回复 提问者 五行缺木 #2
    同学可以看下第一个例子。子类中没有调用父类的方法也可以称为方法重写。当父类的方法不符合子类的实物的行为时,都可对其进行重写,可在子类中定义一个这样的方法,即它与要重写的父类方法同名。这种子类包含与父类同名的方法的现象被称为方法重写,也被称为方法覆盖。可以说子类重写了父类的方法,也可以说子类覆盖了父类的方法。
    2019-08-02 09:59:02
  • 五行缺木 提问者 #3
    那就是说子类重写了父类的方法之后,重写之后的方法就不包含父类中方法内的功能了是吧?
    2019-08-02 10:39:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师