首先什么是多态?
多态在编程中的解释是: 为不同类型的实体提供单一的接口, 或使用单一的符号代表多种不同的类型.
通俗的解释就是: 一词多用或一词多义.
那么类的多态是什么?
答: 类的多态就是多态在类里面的落地实现.
最典型的应用就是: 父类的函数在不同子类中用不同的代码实现其功能, 这个多态行为称为重写函数.
举个例子, 请看下图:
图中动物这个基类拥有一个方法: 跑步.
它的两个子类也继承了这个方法.
但在实际情况中, 人科动物和犬科动物在跑步时的体现是各不相同的,
人科动物使用两腿跑步, 而犬科动物使用四足跑步.
因此在子类中对这个方法进行重新实现是必要的.
下面是重写函数在Python中的语法:
class 动物:
速度 = 20
def __init__(self):
self.速度 = 10
print('* 这是动物的构造函数')
def 跑步(self, 公里):
print('我在跑步, 公里', 公里)
class 人科(动物):
def __init__(self):
动物.__init__(self)
print('* 这是人科的构造函数')
def 跑步(self, 公里):
print('我用两腿在跑步, 速度', self.速度)
class 犬科(动物):
def __init__(self):
print('* 这是犬科的构造函数')
def 跑步(self, 公里):
动物.跑步(self, 公里)
print('我用四足在跑步, 速度', self.速度)
唐僧 = 人科()
唐僧.跑步(100)
哮天犬 = 犬科()
哮天犬.跑步(200)