Python中的多继承

# 定义一个父类
classA:
def printA(self): 
print('----A----') 
# 定义一个父类
classB:
def printB(self): 
print('----B----') 
# 定义一个子类,继承自A、B
class C(A,B):
def printC(self): 
print('----C----') 
obj_C = C() 
obj_C.printA() 
obj_C.printB() 

运行结果:

----A----

----B----

说明:

1、python中是可以多继承的

2、父类中的方法、属性,子类会继承

注意点:

想一想:

如果在上面的多继承例子中,如果父类A和父类B中,有一个同名的方法,那么通过子类去调用的时候,调用哪个

#coding=utf-8
class base(object): 
def test(self): 
print('----base test----') 
classA(base):
def test(self): 
print('----A test----') 
# 定义一个父类
classB(base):
def test(self): 
print('----B test----') 
# 定义一个子类,继承自A、B
classC(A,B):
pass 
obj_C = C() 
obj_C.test() 
print(C.__mro__) 
#可以查看C类的对象搜索方法时的先后顺序,C3算法得到一个元组

2、重写

<1>重写父类方法

所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法

#coding=utf-8 
class Cat(object): 
def sayHello(self): 
print("halou-----1") 
class Bosi(Cat): 
def sayHello(self): 
print("halou-----2") 
bosi = Bosi() bosi.sayHello() 

调用父类的方法:

#coding=utf-8 
class Cat(object): 
def __init__(self,name): 
self.name = name 
self.color = 'yellow' 
class Bosi(Cat): 
def __init__(self,name): 
# 调用父类的__init__方法1(python2) 
#Cat.__init__(self,name) 
# 调用父类的__init__方法2 
#super(Bosi,self).__init__(name) 
# 调用父类的__init__方法3 
super().__init__(name) 
def getName(self): 
return self.name 
bosi = Bosi('xiaohua') 
print(bosi.name) 
print(bosi.color)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值