zoukankan      html  css  js  c++  java
  • 继承

    继承:

    继承是一种新建类的方式,新建的类称之为子类或者派生类,被继承的类称之为父类,基类,超类

    python中继承的特点:

    1.子类可以遗传,重用父类的属性

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

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

    新式类:但凡继承objec的类foo,以及该类的子类都是新式类

    在python中一个类即便是没有显示的继承任何类,默认就会继承objec类

    在python3中所有的类都是新式类

    经典类:

    没有继承obje类的类,以及该类的子类都是经典类

    继承用来减少类与类之间的代码冗余

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

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

    这种方式与继承无关

    访问是类的函数,没有自动传值的效果

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

    如果一个子类继承多个分支(多个分支没有共同继承一个非object的类)

    此时属性的查找优先级是:对象,对象的类,按照从左到右的顺序一个分支一个分支的找下去

    菱形继承问题:

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

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

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

    super()必须在类中用

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

    在python3中:super()

    调用该函数会得到一个特殊的对象,该对象专门用来访问父类中的属性,完全参照mro列表

    总结:

    1.严格依赖继承mro列表

    2.访问是绑定方法,有自动传值的效果

  • 相关阅读:
    Java IO流-NIO简介
    Java IO流-Properties
    Java IO流-序列化流和反序列化流
    Codeforces Round #371 (Div. 1) C
    bzoj 2326 矩阵快速幂
    IndiaHacks 2016
    HDU
    Educational Codeforces Round 51 (Rated for Div. 2) F
    Codeforces Round #345 (Div. 1) D
    Codeforces Round #300 E
  • 原文地址:https://www.cnblogs.com/fushaunglin/p/9507832.html
Copyright © 2011-2022 走看看