python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。
比如,同一个苹果(统一的接口)在孩子的眼里(类实例)可能就是食物(数据处理的方式),在摄影师的眼里可能是个非常不错的素材,在商人的眼里可能就是一个商机了,等等。这就是python的多态!
下面我们将这个比喻抽象成python代码,进一步来理解python的多态!
class WorldOutlook():
def world_outlook(self):
print('苹果是一种植物果实')
class child(WorldOutlook):
def world_outlook(self):
print('这是苹果,一种好吃的东西!')
class photographer(WorldOutlook):
def world_outlook(self):
print('这个苹果真是一个不错的摄影素材!')
class businessman(WorldOutlook):
def world_outlook(self):
print('这苹果卖相不错,应该多进一点货来卖!')
c = child()
p = photographer()
b = businessman()
c.world_outlook()
p.world_outlook()
b.world_outlook()
————————————————————————————————————
代码输出:
这是苹果,一种好吃的东西!
这个苹果真是一个不错的摄影素材!
这苹果卖相不错,应该多进一点货来卖!
如上代码,可见,统一的world_outlook()接口,实现了不同的数据(函数)处理模式,这就是多态。这是不是有一种很熟悉的感觉,对的,就是类的继承,也完全符合类由内而外、先到先得的继承机制。
可以参考下面的内容: