多态(polymorphism)是指基类的同一个方法在不同派生类对象中具有不同的表现和行为。 派生类继承了基类的行为和属性之后,还会增加某些特定的行为和属性,同时还可能会对继承来的某些行为进行一定的改变,这都是多态的表现形式。
# 在派生类中重写基类方法实现多态
class Animal(object): # 定义基类
def show(self):
print('animal')
class Cat(Animal): # 派生类,覆盖了基类的 show() 方法
def show(self):
print('cat')
class Dog(Animal): # 派生类
def show(self):
print('dog')
class Tiger(Animal): # 派生类
def show(self):
print('tiger')
class Test(Animal): # 派生类,没有覆盖基类的 show() 方法
pass
x = [i() for i in (Animal, Cat, Dog, Tiger, Test)]
for i in x: # 遍历基类和派上类对象并调用 show() 方法
i.show()
Python 大多数运算符可以作用于不同类型的操作数,并且对于不同类型的操作数往往有不同的表现,这本身就是多态,是通过特殊方法与运算符重载实现的。