---继承

  当我们定义完成某个类时,可以再定义一个新类,新类可以继承第一个类。新类被称为子类,而被继承的类称为父类/基类/超类。

  继承就是子类继承父类的属性和方法(注意是类属性和类方法)。

  继承可以使子类使用父类中的方法,也可以在子类中新定义某个方法,或者在子类中覆盖父类的方法

  来看一个实例:

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
View Code

相关文章: