Python系统学习第十二课

单继承和多继承

  • 单继承:每个类只能允许继承一个类
  • 多继承:每个类允许继承多个类

单继承优缺点

  • 传承有序逻辑清楚语法清晰语法简单隐患少
  • 功能不能无限扩展,只能在当前唯一的继承链中扩展

多继承

  • 优点:类的功能扩展方便
  • 缺点:继承关系混乱
class Fish():
    def __init__(self, name):
        self.name = name
    def swim(self):
        print("i am swimng")
        
class Bird():
    def __init__(self, name):
        self.name = name
    def fly(self):
        print("i am flying")
        
class Person():
    def __init__(self, name):
        self.name = name
    def worked(self):
        print("working...")
    
class Superman(Person, Bird, Fish):
    pass

s = Superman("lizi")
s.fly()
s.swim()
i am flying
i am swimng

菱形继承和钻石继承

  • 继承图显示为一个菱形
  • 会带来继承混乱的问题
  • 关于多继承的MRO
    • MRO就是多继承中,用于保存继承顺序的一个列表
    • python本身采用C3算法,来对多继承进行计算的结果
    • MRO列表计算原则
      • 子类永远在父类前面
      • 如果多个父类,根据参数顺序进行存放
      • 如果多个类继承同一个父类,孙子类中只会选取继承语法括号中第一个父类的父类

#构造函数一定要有,如果没有会按照MRP顺序向上找父类的构造函数,直到找到位置

多态

  • 就是同一个对象在不同情况下有不同的状态出现
  • 多态不是语法,是一种设计思想。
  • 多态性,一种调用方式,不同的执行效果

MIxin设计模式

  • 主要采用多继承方式对类的功能进行扩展
  • 不改变物种,只改变功能。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值