zoukankan      html  css  js  c++  java
  • 单继承&多继承 注意点

    单继承:

      1.先抽象再继承,几个类之间的相同代码抽象出来,成为父类(优化代码,减少重复)

      2.子类没有自己的名字就可以使用父类的方法和属性

      3.如果子类和父类中有相同的方法和属性,在子类中调用时一定先用子类的,如果子类中没有继续在父类中寻找,如果父类中也没有,则会报错。

      4.在类中使用self时,一定要看清楚self指向谁

      5.如果既想使用新功能,又想使用父类原有的功能,还需要在子类中调用父类

      

    多继承:

      1.python3中所有类都是新式类,即广度优先,python2中经典类与新式类并存,经典类中 深度优先

      2.多继承中子类调用一个方法,默认就近原则,eg:class A(B,C,D):默认先继承B 

      3.在新式类中,有一个  类名.mro方法,查看广度优先的继承顺序

      4.python3中 super方法:根据广度优先的继承顺序寻找上一个类(super()方法是根据调用者的节点位置的广度优先顺序来找的,并不是单纯的找父类)

        例如:

    class A:
        def func(self):
            print('A')
    
    class B(A):
        def func(self):
            super().func()
            print('B')
    
    class C(A):
        def func(self):
            super().func()
            print('C')
    
    class D(B,C):
        def func(self):
            super().func()
            print('D')
    
    d = D()
    d.func()
    
    
    
    结果:
    A
    C
    B
    D
    View Code
  • 相关阅读:
    JS的反射
    反射帮助类
    hdu 1097
    终于了解母函数了 ,感谢lz hdu 1248
    CommandArgument用法
    MOSS 2007 EventHandler 开发步骤
    《Microsoft Office SharePoint Server 2007案例实战开发》之对象介绍
    ASP.NET入门随想之检票
    DataTable,DataView和DataGrid中一些容易混淆的概念
    MOSS模型及其基本操作
  • 原文地址:https://www.cnblogs.com/Hxx0916/p/9640471.html
Copyright © 2011-2022 走看看