---继承
当我们定义完成某个类时,可以再定义一个新类,新类可以继承第一个类。新类被称为子类,而被继承的类称为父类/基类/超类。
继承就是子类继承父类的属性和方法(注意是类属性和类方法)。
继承可以使子类使用父类中的方法,也可以在子类中新定义某个方法,或者在子类中覆盖父类的方法。
来看一个实例:
class animal(object): #定义一个动物类 def running(self): print('running....') class dog(animal): #定义一个狗类,且狗类继承动物类 def wangwang(self): print('wang! wang!') xiaohei=dog() xiaohei.running() xiaohei.wangwang() #结果 running.... wang! wang!
我们可以看到,在上面的例子中,dog类继承animal类后,就不需要再重新定义running方法,可以直接调用animal中的running方法。这就是继承的优点之一。
如果我们在dog类中也定义一个running方法会怎样?
class animal(object): def running(self): print('running....') class dog(animal): def wangwang(self): print('wang! wang!') def running(self): print('dog is running') #结果 dog is running #父类的方法被子类同名的方法覆盖 wang! wang!
也就是,子类中的方法会覆盖父类中同名的方法!
子类如何执行父类的构造函数?
1 super(Son, self).__init()
2 Father.__init__(self)
class Animal(object): name = 'ahah' def __init__(self): self.a = 'animal' class Cat(Animal): def __init__(self): super(Cat,self).__init__() # Animal.__init(self) self.b = 'cat' c1 = Cat() print(c1.a) #animal