如果在子類中需要調用父類的構造方法,需要顯式地調用父類的構造方法,或者不重寫父類的構造方法。
1、__init__方法
class Father(object):
def __init__(self, name):
self.name=name
print ( "name: %s" %( self.name) )
def getName(self):
return 'Father ' + self.name
class Son(Father):
def getName(self):
return 'Son '+self.name
if __name__=='__main__':
son=Son('runoob')
print ( son.getName() )
輸出
name: runoob
Son runoob
子類沒有重寫父類的__init__方法,在子類實例化的時候就會默認調用父類的__init__方法。
2、普通方法
class Father(object):
def __init__(self, name):
self.name = name
print("name: %s" % (self.name))
def getName(self):
return 'Father ' + self.name
class Son(Father):
pass
# def getName(self):
# return 'Son ' + self.name
if __name__ == '__main__':
son = Son('runoob')
print(son.getName())
輸出
name: runoob
Father runoob
當子類沒有對父類方法getName進行重寫但子類實例又調用了該父類方法時,會自動調用父類的同名方法。
https://www.runoob.com/w3cnote/python-extends-init.html