[转载]多继承(钻石继承)的问题和解决

大家都知道继承的目的是为了让子类可以使用父类的成员,实现代码的复用,但是在多继承中会出现各种问题:

class Father(object):
    def __init__(self, name):
        self.name = name
        print("Im father")

class Son_1(Father):
    def __init__(self, age, name):
        self.age = age
        Father.__init__(self, name)
        print("Im Son_1")

class Son_2(Father):
    def __init__(self, gender, name):
        self.gender = gender
        Father.__init__(self, name)
        print("我是Son_2")

class GrandSon(Son_1, Son_2):
    def __init__(self, name, age, gender):
        Son_1.__init__(self, age, name)
        Son_2.__init__(self, gender, name)
        pass
grand_son = GrandSon("张三", 18, "男")
print(GrandSon.__mro__)

在上面的代码里,写了四个类,并且他们的继承关系非常清楚,Son1和Son2都继承自Father,而GrandSon刚好继承Son1,Son2,这样就是经典的菱形继承也叫钻石继承,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值