類的多繼承
阿新 • • 發佈:2017-10-28
self 女人 休息 isp 多繼承 print style img pri
1、一個子類可以由多個父類繼承得到
2、子類繼承父類時,在子類構造時,要註意次序
3、子類構造中如果存在和父類同名的構造方法,則優先執行
4、子類中沒有父類同名的參數和構造方法,則執行父類中的方法(屬性)
ex:
1 class People(object):#新式類的寫法,推薦使用 2 def __init__(self,name,age): 3 self.name=name 4 self.age=age 5 def eat(self): 6 print("%s在享受美食"%self.name) 7 defView Codetalk(self): 8 print("%s在作詩"%self.name) 9 def sleep(self): 10 print("%s在睡覺"%self.name) 11 12 class Communication(object): 13 #定義一個Communication父類 14 def meet(self,obj): 15 print("%s找%s交流詩詞" %(self.name,obj.name)) 16 17 class Man(People,Communication):#多繼承,People,Communication18 #定義了一個子類男人 19 def __init__(self,name,age,beard): 20 #People.__init__(self,name,age)#繼承了父類People,當多繼承時比較麻煩 21 super(Man,self).__init__(name,age)#當父類改變名字時,不用改了,推薦寫法 22 self.beard=beard 23 def grow_beard(self): 24 print("%s%s歲的胡子%s厘米長"%(self.name,self.age,self.beard))25 def sleep(self): 26 #People.sleep(self)#通過父類,重構的方法,經典寫法 27 super(Man,self).sleep(self)#新式類的寫法 28 print("男人在休息") 29 30 class Woman(People,Communication):#多繼承,People,Communication 31 #定義一個子類女人 32 def get_birth(self): 33 print("%s在生孩子"%self.name) 34 w1=Woman("蔡文姬",32) 35 m1=Man("李白",32,5) 36 m1.meet(w1)#多繼承的結果 37 w1.meet(m1)#多繼承的結果
類的多繼承