子类继承后,父类的所有实例方法,子类都可以用self.方法名访问
class 类名(父类):
重写 :父类和子类有同函数 要调用父类同名函数 要用super().方法名()
同名方法 参数个数建议不少于父类
当子类没有与父类同名方法时 可以通过self.方法名调用
有同名函数时 不可以 优先使用自己的
全面重写 覆盖父类同名方法实现
同名方法参数个数/参数类型 不做限定
父类有__init__ 子类没有 ,在实例化子类时,会自动调用父类__init__
子类有用子类的
# 2, 定义一个类 Dog, 包含 2 个属性:名字和年龄。
# 定义一个方法 eat 吃东西。
# 定义一个类 TeddyDog, 继承 Dog 类, Teddy 在吃东西的时候还会望着你, 定义方法 watch_you.
# 定义一个类 BabyTeddyDog, 继承 TeddyDog, BabyTeddy 吃东西不仅会望着你,还会四处转悠, 定义方法 go_around
class Dog: # 定义一个Dog类
def __init__(self, name, age): # 定义一个初始化方法 包含name和age两个属性
self.name = name
self.age = age
def eat(self): # 定义一个eat方法
print('Dog在吃东西')
class TeddyDog(Dog): # 定义一个TeddyDog类 继承Dog类
def watch_you(self):
super().eat() # 继承父类eat方法
print('Teddy 在吃东西的时候还会望着你')
class BabyTeddyDog(TeddyDog): # 定义一个BabyTeddyDog类 继承TeddyDog类
def go_around(self):
super().watch_you() # 继承watch_you方法
print('BabyTeddy 吃东西不仅会望着你,还会四处转悠')
summer = BabyTeddyDog('summer', 5)
BabyTeddyDog.go_around(summer)
运行结果如下: