面向对象-继承

继承

  继承是两个对象直接产生的一种关系

  在OOP的程序中继承是描述类与类之间的一种关系

  a 继承 b

  继承的好处:a就可以之间使用b类中的属性和方法

  继承极大的提高了代码的重用性

  a称之为子类/派生类,b称为父类/基类

 

  抽象

    在使用继承的时候,一定是先抽象,在继承

    抽象是抽取一堆类共同拥有的内容,形成一个新的抽象概念(类也称之为共公基类)

  属性的查找顺序

  没有继承关系:对象 > 类

  存在继承关系:对象 > 对象的类 > 父类 > ... > object

  object

  是所有类的跟类,所有类都直接或间接的继承自object,在定义时没有手动继承任何类,会默认继承object,object中包含了所有对象的通用方法

  经典类与新式类

  新式类:只要是继承自object的都叫新式类

  在python3中所有类都是新式类

  python2中没有手动继承object的类都是经典类

 

继承的常用方式之一

  可以继承一个系统已有的类,来扩展新功能

派生

  当一个类继承另一个类,并存在与父类不同的内容时就称之为派生类

覆盖

  在继承关系中,子类可以出现与父类完全相同的方法

  会优先使用子类中的方法

子类重用父类的方法

  指名道姓的调用父类中的函数

  super().要访问的名字

组合:一个对象把另一个对象作为属性

python支持多继承

  一个类可以同时继承多个其他类

  好处:可以同时拥有多个类中已存在的内容

  坏处:如果父类中出现了重复的名字,执行顺序需要参考mro列表

  菱形继承

  新式类:广度优先

  经典类:深度优先

  

posted @ 2019-02-19 15:15  linchengcheng  阅读(237)  评论(0编辑  收藏  举报