10-29 继承-单继承

继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,
父类又可称为基类或超类,新建的类称为派生类或子类
一个类可以被多个类继承
一个类可以继承多个父类---仅限于python中
注:在Python 3中,所有的类都有父类,若是没有继承父类,默认都是继承object
class A:#父类、基类、超类(必须放在子类之前)
    pass
class A(object):#父类、基类、超类(必须放在子类之前)
    pass
class B:
    pass
class A_son(A,B):#子类、派生类
    pass
class AB_son(A):
    pass

print(A_son.__bases__)  #结果:(<class '__main__.A'>, <class '__main__.B'>)
print(AB_son.__bases__) #结果:(<class '__main__.A'>,)
print(A.__bases__)      #结果:(<class 'object'>,)

  

super---既可以在累的内部使用,也可以在类的外部使用
在类的内部使用时,需要传默认的使用参数;
在类的外部使用时,必要传类名和对象名
class Animal:
    def __init__(self,name,hp,aggr):       #self就是一个可以存储很多属性的大字典,不过是往字典里面添加属性的方法发生了变化
        self.name = name
        self.hp = hp
        self.aggr = aggr
    def eat(self):
        print("打药回血!")
class Dog(Animal):
    def __init__(self,name,hp,aggr,kind):
        super().__init__(name,hp,aggr)  #只在新式类中有,Python3 中所有的类都是新式类
        self.kind = kind
    def eat(self):
        print('dog eating!')
class Person(Animal):
    pass
alex = Dog('alex',200,500,'泰迪')
print(alex.kind)    #结果:泰迪
alex.eat()          #结果:dog eating!
super(Dog,alex).eat()   #结果:打药回血!

  

 
posted @ 2018-10-29 14:32  大脸猫12581  阅读(145)  评论(0编辑  收藏  举报