LV1,普通的继承
子类继承父类
子类实例的对象可享受父类的方法
lv2,父类方法的重写
当自己的方法需求与父类不同的时候,可以重写父类的方法
lv3,子类在父类方法上扩展新功能
方法要用到父类方法的全部功能
而且会在基础上进行功能的拓展
super().run()
lv4,super获取父类的完整写法
super()
等价于
super(当前类名,self)
代码存档
class Father:
def run(self):
print('父类的跑方法')
class Son(Father):
def run(self):
print('son 自定义功能1')
print('self', self)
super(Son,self).run()
print('son 自定义功能2')
obj = Son()
obj.run()
小结
复习了普通的继承
了解了获取父类的另一种表现形式
进阶
class Father:
def run(self):
print('father run')
print('super调用时的self', self) # 猜测,self,可能是Father类的实例对象
print('父类的run开始调用s对象的eat方法')
self.eat()
class Son(Father):
def run(self):
super().run() # Father().run()
print('son run')
print('son自己的self', self)
def eat(self):
print('son eat')
s = Son()
s.run()
# 子类调用父类的方法
# f = Father()
# f.run()
# Father().run()
效果
C:\ProgramData\Anaconda3\python.exe G:/untitled6/面向对向/1.py
father run
super调用时的self <__main__.Son object at 0x0000015F22CC6F98>
父类的run开始调用s对象的eat方法
son eat
son run
son自己的self <__main__.Son object at 0x0000015F22CC6F98>
Process finished with exit code 0