类的多继承
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)#多继承的结果
以上是关于类的多继承的主要内容,如果未能解决你的问题,请参考以下文章