多态真的有用吗?今天番茄加速就来说一说。
如果说OOP的封装和继承使用起来更加直观易用,那么作为第三大特性的多态,在实践中真正运用起来就不那么容易。有的读者OOP编程初期,可能对多态的价值体会不深刻,甚至都已经淡忘它的存在。
那么问题就在:多态到底真的有用吗?到底使用在哪些场景?
多态价值很大,使用场景很多,几乎所有的系统或软件,都能看到它的应用。这篇文章尽可能通过一个精简的例子说明它的价值和使用方法。如果不用多态,方法怎么写;使用多态,又是怎么写。
为了一脉相承,做到一致性,仍然基于上面的案例,已经创建好的Cat类要有一个方法打印和返回它的爬行速度。同时需要再创建一个类Bird,要有一个方法打印和返回它的飞行速度;
如果不使用多态,为Cat类新增一个方法:
class Cat(Animal):
def init(self,name,speed,color,genre):
super().init(name,speed)
self.color = color
self.genre = genre
# 添加方法
def getRunningSpeed(self):
print(‘running speed of %s is %s’ %(self.name, self._speed))
return self._speed
重新创建一个Bird类:
class Bird