Python基础–重写
当子类的方法与分类的方法同名的时候,这个是后就出现了
重写方法
的问题,
子类直接调用了自己的方法,不会在调用父类相同名字的方法
重写的实例
class Animal:
def bark(self):
print("我要吼两嗓子")
class Cat(Animal):
def bark(self):
# 重写: 在子类中定义和父类同样的方法
# 如果发生重写,只会调用当前类的方法,不会向父类查询方法
# 当前类-->父类-->在上级的父类-->object->没有的话就会报错
print("喵喵喵喵喵喵")
xiaohua = Cat()
xiaohua.bark()
指定调用被重写的方法
目前我们有三种方法来进行指定调用,从而避免被重写的问题
父类名.方法(self)
指定调用父类的方法,从而达到目前- 引入超类
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()