1. 程式人生 > >類的多繼承

類的多繼承

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     def
talk(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,Communication
18 #定義了一個子類男人 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)#多繼承的結果
View Code

 

類的多繼承