Python基础–重写
当子类的方法与分类的方法同名的时候,这个是后就出现了重写方法
的问题,
子类直接调用了自己的方法,不会在调用父类相同名字的方法
==重写的实例==
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Animal: def bark(self): print("我要吼两嗓子")
class Cat(Animal): def bark(self): # 重写: 在子类中定义和父类同样的方法 # 如果发生重写,只会调用当前类的方法,不会向父类查询方法 # 当前类-->父类-->在上级的父类-->object->没有的话就会报错 print("喵喵喵喵喵喵")
xiaohua = Cat() xiaohua.bark()
|
指定调用被重写的方法
目前我们有三种方法来进行指定调用,从而避免被重写的问题
父类名.方法(self)
指定调用父类的方法,从而达到目前
- 引入超类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class Cat: def bark(self): print("嗷嗷嗷")
class SmallCat(Cat): def bark(self): print("汪汪汪")
def SeeMaster(self): print("摇尾巴") # self.bark() # 因为重写导致只能调用当前方法
# 需求:需要调用被重写的父类防范
# First 1 Cat.bark(self)
# First 2 # super(超类) super(SmallCat, self).bark()
# 超类的简写 super().bark()
xiaohua = SmallCat() xiaohua.SeeMaster()
|