关于继承和多态,不知道学的是不是不够深入,感觉很简单,子类继承父类后,拥有父类全部功能,子类可以定义新功能,也可以重新定义继承的父类功能,重新定义后,相当于覆盖,当然以新的为准。
关于这个例子
def run_twice(animal): animal.run() animal.run()
这里是方法调用类,animal 只是一个形参,这个参数有两个特征,一是类,二是要有 run() 方法。 所以只要有 run() 方法的类都能够被执行,这个是必然的啊,完全没 get 到鸭子类型的精髓!
楼下的回复,有一点点理解!
鸭子类型: 现在把类Animal当做鸭子,把调用run函数当做鸭子的走路姿势 只要这个类可以调用run函数,就把它看做鸭子 也就是说走路姿势像鸭子,你就是鸭子
到位
Sign in to make a reply
皆由唧唧
关于继承和多态,不知道学的是不是不够深入,感觉很简单,子类继承父类后,拥有父类全部功能,子类可以定义新功能,也可以重新定义继承的父类功能,重新定义后,相当于覆盖,当然以新的为准。
关于这个例子
这里是方法调用类,animal 只是一个形参,这个参数有两个特征,一是类,二是要有 run() 方法。
所以只要有 run() 方法的类都能够被执行,这个是必然的啊,完全没 get 到鸭子类型的精髓!