1、隐式继承(implicit inheritance)
class Parent: def implicit(self): print('Parent implicit()') class Child(Parent): pass#创建空的代码块 dad=Parent() son=Child() dad.implicit() son.implicit()输出: Parent implicit() Parent implicit() 2、显示覆写(explicit override)
class Parent: def override(self): print('Parent override()') class Child(Parent): def override(self): print('Child override()') dad=Parent() son=Child() dad.override() son.override()输出: Parent override() Child override()
也可以通过调用内置的super()函数调用父类方法来实现在程序运行前或者运行后覆写。
class Parent: def altered(self): print('Parent altered()') class Child(Parent): def altered(self): print('-----------') super().altered()#调用父类中的altered()方法 print('-----------') dad=Parent() son=Child() dad.altered() son.altered()输出: Parent altered() ----------- Parent altered() ----------- 3、合成继承(composition inheritance)
class Other: def implicit(self): print('Other implicit()') def override(self): print('Other override()') def altered(self): print('Other altered()') class Child: def __init__(self): self.other=Other() def implicit(self): self.other.implicit() def override(self): print('Child override()') def altered(self): print('*=============') self.other.altered() print('*=============') son=Child() son.implicit() son.override() son.altered()输出: Other implicit() Child override() *============= Other altered() *=============