面向对象--继承

什么是继承

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

继承与派生的关系

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

继承的分类

    单继承、多继承

在Python 2 中类的分类

    新式类:

        

class   A (object):
    pass

    经典类:

class  A:
    pass

在Python 3中类的分类

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

      

class  A:
    pass

新式类遵循的查找算法

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

经典类遵循的查找算法

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

 继承与多态的关系

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

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

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

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

调用类方法的顺序:

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

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

posted on 2017-11-21 19:02  云烟||成雨  阅读(117)  评论(0编辑  收藏  举报