继承
Python 中所有的类都是object类的子类,而object 继承自type
继承分为 接口继承和实现继承
接口继承:使用父类的接口名,子类重写这个方法。尽可能的继承接口类,在子类中实现方法,鼓励对接口类的多继承,这样遵循接口隔离原则,有利于归一化设计,不提倡对抽象类进行多继承
实现继承:子类不需要实现任何东西,直接使用父类接口和实现会增强代码的耦合性,不推荐使用。
一些细节
类继承最终要被实例化,我们多数时候使用的还是对象而不是类。因此我们还是来一点点看继~
继承的过程
承仅仅是一种代码复用的手段,并不会讲代码全部的加载到子类的空间中,方法依然属于父类。下面的例子能看到,Cat.func 依然是 Animal 的,更近一步的理解,func 也仅仅是func,它只是被绑定到了类 Animal上而已,类 只是能帮我们找到这个函数,子类通过父类找到这个函数就完了~ 。
class Animal(object):
def func(self):
print("Animal.func")
class Dog(Animal):
def func(self):
print('Dog.func')
class Cat(Animal):
""" No func~ """
print(Animal.func) #
print(Cat.func) #
print(Dog.func) #