类的多继承

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

 

 

 

 

posted on 2017-10-27 23:49  Alan_chow  阅读(1229)  评论(0编辑  收藏  举报

导航