类的多继承

Posted Alan_chow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的多继承相关的知识,希望对你有一定的参考价值。

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

 

 

 

 

以上是关于类的多继承的主要内容,如果未能解决你的问题,请参考以下文章

接口类的多继承

python-- 类的多继承经典类新式类

类的多继承

C++ 抽象类二(抽象类的基本语法)

python中类的多继承的搜索算法

Java中的“继承”