繼承:讓類和類之間轉變為父子關系,子類默認繼承父類的屬性和方法
單繼承:
class Person:def eat(self):print("eat")def sing(self):print("sing") class Girl(Person):pass#占位符,代碼里面類下面不寫任何東西,會自動跳過,不會報錯 girl=Girl() girl.eat()
可以多個類是子類,就算子類自己沒有,也可以使用父類的
繼承的傳遞(多重繼承):
class Father:#父類def eat(self):print("eat")def sing(self):print("sing") class Son(Father):#Father類的子類pass#占位符,代碼里面類下面不寫任何東西,會自動跳過,不會報錯 class Son1(Son):pass son=Son() son.eat() son1=Son1() son1.eat()##子類也可以繼承父類的父類
方法的重寫:
覆蓋父類方法:
class Person:#父類def eat(self):print("eat")def sing(self):print("sing") class Man(Person):#Person類的子類def eat(self):print("eat1") man=Man() man.eat()
繼承父類的方法,子類增加自己的功能(對父類方法進行擴展):
第一種方法:
class Person:#父類def eat(self):print("eat")def sing(self):print("sing") class Man(Person):#Person類的子類def eat(self):Person.eat(self)#************#print("eat1") man=Man() man.eat()
第二種方法(推薦使用,懶人寫法):
super().方法名():super在Python里面是一個特殊的類
super():是使用super類創建出來的對象,可以調用父類中的方法:
class Person:#父類def eat(self):print("eat")def sing(self):print("sing") class Man(Person):#Person類的子類def eat(self):#Person.eat(self)super().eat()print("eat1") man=Man() man.eat()
第三種方法:super(子類名,self).方法名():
class Person:#父類def eat(self):print("eat")def sing(self):print("sing") class Man(Person):#Person類的子類def eat(self):#Person.eat(self)#************##super().eat()#***********#super(Man,self).eat()print("eat1") man=Man() man.eat()