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设计模式

  • 主要采用多继承方式对类的功能进行扩展
  • 不改变物种,只改变功能。

猜你喜欢

转载自blog.csdn.net/qq_42633819/article/details/85692297