Python多态原理与示例演示

2017-04-04 董付国 Python小屋 Python小屋

所谓多态(polymorphism),是指基类的同一个方法在不同派生类对象中具有不同的表现和行为。派生类继承了基类行为和属性之后,还会增加某些特定的行为和属性,同时还可能会对继承来的某些行为进行一定的改变,这都是多态的表现形式,正所谓龙生九子,子子皆不同。Python大多数运算符可以作用于多种不同类型的操作数,并且对于不同类型的操作数往往有不同的表现,这本身就是多态,是通过特殊方法与运算符重载实现的,


>>> class Animal(object):   #定义基类

def show(self):

print('I am an animal.')


>>> class Cat(Animal):   #派生类,覆盖了基类的show()方法

def show(self):

print('I am a cat.')


>>> class Dog(Animal):   #派生类

def show(self):

print('I am a dog.')


>>> class Tiger(Animal):  #派生类

def show(self):

print('I am a tiger.')


>>> class Test(Animal):  #派生类,没有覆盖基类的show()方法

pass


>>> x = [item() for item in (Animal, Cat, Dog, Tiger, Test)]

>>> for item in x:  #遍历基类和派生类对象并调用show()方法

item.show()


I am an animal.

I am a cat.

I am a dog.

I am a tiger.

I am an animal.