继承的相关介绍

一:继承介绍:

                  1:什么是继承:继承是一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类/基类/超类

                   python中继承的特点:

                                              ①子类可以遗传/重用父类的属性

                                              ②python中一个子类可以同时继承多个父类

                                              ③在继承背景下去说,python中的类分为两种:新式类    经典类

                                                  新式类:但凡继承了object的类以及该类的子类...都是新式类

                                                         在python3中一个类即便是没有显式的继承任何类,默认就继承object,即python3中所有的类都是新式类

                                                  经典类:没有继承object的类以及该类的子类...都是经典类

                                                         在python2中才区分新式类与经典类

                                                         在python2中一个类如果没有显式地继承任何类,也不会继承object

 

                  2:为何要用继承:减少类与类之间代码冗余

                  3:如何用继承:例:

                     

                

                  子类如何重用父类的属性:

                                   在子类派生的新方法中重用父类功能的方式一:

                                                指名道姓的引用某一个类中的函数

                                                总结:①与继承无关 ②访问的是类的函数,没有自动传值的效果

                                   在子类派生的新方法中重用父类功能的方式二:

                                                利用内置关键字 super() 必须在类中用

                                                在python2中:super(自己的类名,自己的对象)

                                                在python3中:super()

                                                 总结:① 严格依赖继承mro列表  ② 访问是绑定方法,有自动传值的效果

 

                   在继承背景下的属性查找优先级:

                                             1:在单继承背景下的属性查找优先级:     对象-》对象的类-》父类-》父类...

                                             2:在多继承背景下的属性查找优先级:

                                                    ①如果一个子类继承多个分支(多个分支没有共同继承一个非object的类)此时属性的查找

                                                           优先级是:对象-》对象的类-》按照从左往右的顺序一个分支一个分支的找下去

                                                    ②菱形继承问题:

                                                          新式类 : 广度优先查找,从左往右一个分支一个分支的查找,在最后一个分支才去查找顶级类

                                                          经典类 : 深度优先查找,从左往右一个分支一个分支的查找,在第一个分支就查找顶级类

 

posted @ 2018-08-20 13:04  &nbsp  阅读(115)  评论(0编辑  收藏  举报