Python 继承的理解

继承

1)基本

  • 继承是面向对象的三大特征之一 (继承,封装,多态)

  • 通过继承可以使一个类获取到其它类中的方法和属性

  • 定义时,在类名后的括号指定当前类的 父类(超类,基类,super)

class Animals:
name = "dogs"


class Dog(Animals):
def bark(self):
 print('汪汪汪!')


class Chai(Dog):
pass


d = Dog()
c = Chai()
print(d.name)
print(c.name)
c.bark()
'''
dogs
dogs
汪汪汪!
'''

2)默认情况

  • 在创建类时,如果省略class xxxx:)了父类,则默认父类为object

    • object是所有类的父类,所有类都继承自object

3)isinstanceissubclass

  • isinstance() 检查一个对象是否是另一个对象的实例

  • issubclass() 检查一个类是否是另一个类的子类

4)重写

  • 如果类中有同名的方法,实例在调用时,会先调用子类的方法,而不是父类的方法,这个特点就叫做重写

  • 当我们调用一个对象的方法时,会优先去当前对象中寻找是否具有该方法

    • 如果有直接调用;

    • 如果没有去当前对象中的父类中寻找,如果父类中有则继续调用;

    • 如果该父类中没有,继续去该父类的父类中寻找,以此类推;

    • 直到找到object,如果还是没有,则报错

  • 举例

    class A(Object):
    def test(self):
     print('AAA')
    
    class B(A):
    def test(self):
     print('BBB')
    
    class C(B):
    def test(self):
     print('CCC')
    
    
    c = C()
    c.test()
    '''
    CCC
    '''
    
    c.hello()
    '''
    [报错error]
    '''
    

5)super()

  • 可直接获取当前类的父类

  • 通过super()返回对象调用父类方法时,不需要传递self

6)多重继承

  • 类名 . __ bases __

  • 多重继承可以为一个类同时指定多个父类

    • 可以在类名的()后边添加多个类,实现多重继承

    • 多重继承会使子类同时拥有多个父类,并且会获取到所有父类的方法

  • 举例

    class Dad:
     def test(self):
     print('Dad')
    
    
    class A(Dad):
     def __init__(self, name):
     self.__name__ = name
    
     def test(self):
     print('AAAA')
    
    
    class B(A):
     def test1(self):
     print('BBBB')
    
    
    class C(B, A):
     def test1(self):
     print('CCCC')
    
    
    b = B('狗')
    b.test()
    
    '''
    AAAA
    '''
    
image-20211217154156121.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容