类的继承

为什么要继承?

提高代码的重用性,减少冗余

继承分哪两种?

单继承:在py3版本,所有的类是新式类,继承的最底层类是object,如果不写object,会默认你的父类(超类,基类)是object

    

class A(类的名字B):
    pass

    A就是B的父类
    A就是子类,python类
    B就是超类,基类,父类

    在py2版本,所有的类是经典类,继承的最底层类不是object,如果不写object,就是经典类,写了就会变成经典类

 

多继承:在py3中,子类调用父类根据mro算法找

# class Parent1:
#     pass
# class Parent2:
#     pass
#
# class Son(Parent1,Parent2):
#     pass
#
# print(Son.__bases__)

 

   

   

 

    在py2中,子类调用父类根据深度优先寻找

     

子类单独拥有的属性叫派生属性,子类单独拥有的方法叫派生方法

2.如果子类没有init方法,那么到父类去寻找,如果没有就报错

3.如果子类有init方法,就用自己的但是得这么写

  super().__init__(参数一,参数二....) 

  父类名.__init__(self,参数一,参数二....)

  还有一种不建议,如下

  super(子类,self).__init__(参数一,参数二)  

class Cat(Animal):
   def __init__(self,kind,name,eyes)
       self.eyes = eyes #派生属性
       #super().__init__(kind,name)
       #Animal.__init__(self,kind,name)
   def eat(self):  #派生方法
       pass

 

 

 

  

posted @ 2019-03-27 14:11  帅气的小神气  阅读(97)  评论(0编辑  收藏  举报