1.多态的好处
在已经定义好的父类子类基础上,添加新的子类,不会影响对子类调用的函数
class animal(object):
def run(self):
print('一个')
class Dog(animal):
def run(self):
print('小狗一只')
class Cat(animal):
def run(self):
print('小猫一只')
def run_two(animal):#参数是animal,即属于它的子类都可以调用
animal.run()
animal.run()
run_two(Dog())
run_two(Cat())
结果:
小狗一只
小狗一只
小猫一只
小猫一只
现在突然想添加一个新的子类,如:
class wu_gui(animal):
def run(self):
print('乌龟一只')
run_two(wu_gui())
结果:
乌龟一只
乌龟一只
可见,很容易就把与animal相关的子类添加进来,而且不影响调用。
对于一个变量,只需知道他是animal类型,不需要知道具体的子类型,就可以使用run();run的作用对象是animial还是Cat,Dog,这由你想使用的功能决定。
这也是著名的开闭原则:
对扩展开放:允许新增加子类;对修改封闭:不需要修改依赖animal类型的run_two()等函数;