面向对象--继承 什么是继承 继承与派生的关系 继承的分类 在Python 2 中类的分类 在Python 3中类的分类 新式类遵循的查找算法 经典类遵循的查找算法  继承与多态的关系 super()方法在单继承和多继承的使用 调用类方法的顺序:

面向对象--继承
什么是继承
继承与派生的关系
继承的分类
在Python 2 中类的分类
在Python 3中类的分类
新式类遵循的查找算法
经典类遵循的查找算法
 继承与多态的关系
super()方法在单继承和多继承的使用
调用类方法的顺序:

  子类通过对父类(基类、超类)的抽象,进而使用父类的属性或方法的过程,叫做继承。

继承与派生的关系

  子类继承了父类,父类派生出了子类(实际上两者没有任何区别,只是不同的说法),另一方面继承指的是从模糊到具体的过程,而派指的是具体到模糊的过程。

继承的分类

    单继承、多继承

在Python 2 中类的分类

    新式类:

        

class   A (object):
    pass

    经典类:

class  A:
    pass

在Python 3中类的分类

  在Python3中只有新式类,没有经典类,格式为:

      

class  A:
    pass

新式类遵循的查找算法

  广度优先算法,对于新式类可使用“类名._mro_()”方法查看类的继承关系

经典类遵循的查找算法

  深度优先算法,目前不常用,因为目前大部分项目以Python3开发,Python3只有新式类,新式类只遵循广度优先算法

 继承与多态的关系

   由于类具体继承的特性,形成了同一事物的不同形态,最后的结果就是多态。

super()方法在单继承和多继承的使用

  单继承中:super()方法直接查找父类

       多继承中:super()方法根据广度优先算法查找父类

调用类方法的顺序:

  1.先在子类中查找方法,再在父类中查找

  2.若子类、父类中都有该方法,且想在子类中调用父类方法,则在子类的方法中使用super()方法或者"指名道姓"调用父类方法。