首先需要知道“继承”的概念,例如在下面代码中class son(father):就是son类继承了father类,那么这时候在Line1的左侧会有一个标志,表示被son类继承:
father类被son继承后,当出现相同名称的方法时,就会被重写(override),比如下面代码中的__init__()方法,在son类中被重写,这时Line2左侧会有一个标志:
override的好处是:虽然继承机制让子类继承了父类的所有方法,当父类和子类中出现重名的方法时,可以按照子类中的方法执行,也就是将son实例化后,__init__()方法是按照son中定义的执行的。
最后说一下super()。如上所述,__init__()在son中被重写。super().__init__()的作用就是可以在son类的定义中调用父类中的__init__()方法。Tips:super().______()后面可以是父类中定义的任何方法,并非一定是__init__()方法。
class father():
def __init__(self, para1, para2, para3):
print('父类中的init方法被调用了')
self.para1 = para1
self.para2 = para2
self.para2 = para3
print(self.para1)
class son(father):
def __init__(self, para1, para2, para3, para4):
self.para1 = para1
self.para2 = para2
self.para2 = para3
self.para4 = para4
super().__init__(para1, para2, para3)
father_instance = father(1, 2, 3) # 创建一个类实例时会自动调用init方法
# 输出结果为:
# 父类中的init方法被调用了
# 1
son_instance = son(8, 9, 10, 11) # 创建一个类实例时会自动调用init方法
# 输出结果为:
# 父类中的init方法被调用了
# 8