python学习笔记(29) 继承

class A: pass  #父类,基类,超类

class B: pass  #父类

class A_son(A): pass  #子类,派生类

class AB_son(A,B):pass

#一个类可以被多个类继承

#一个类可以继承多个父类(python特有)

A_son.__bases__  #class '__main__.A'查看父类

A.__bases__  #object 类祖宗 python3里面所有类都有父类,新式类,默认继承object

父类中没有的属性在子类中出现叫做派生属性

父类中没有的方法在子类出现叫做派生方法

只要是子类的对象调用,子类中有的一定用子类的,没有才用父类的

如果既想实现新功能也想使用父类原本的功能,还需要在子类中调用父类Animal.eat(self)

super().__init__(name,att,hp)  #调用父类 只在新式类中有,py3中的所有类都是新式类

super(Dog,jin).eat()  #调用父类方法,在外部使用必须传self参数

##################################################

class Animal:

  def __init__(self):

    print('Animal.__init__')

    self.func()  #此时的self是Dog里的

  def eat(self):

    print('%s is eating'%self.name)

class Dog(Animal):

  def guard(self):

    print('%s is guarding'%self.name)

  def func(self)

    print('Dog.func')

dog = Dog()  #结果打印Dog.func

##########################################

猜你喜欢

转载自www.cnblogs.com/farion/p/9905793.html