[Python学习-多态]

概念

多态(Polymorphism):可以对不同类的对象使用同样操作,它并不管对象是什么类型,只要它实现了这个操作即可。

示例

定义一个Animal类:

# 一个Animal基类
class Animal(object):
        def run(self):
                print("Animal is running")

# 一个继承自Animal的子类 Dog
class Dog(Animal):
        def run(self):
                print("Dog is running")

# 一个独立的类,不继承自Animal
class Independ(object):
        def run(self):
                print("I am a Independ")
 
# 定义一个函数
def run_twice(x):
        x.run()

# 调用
a = Animal()
d = Dog()
i = Independ()

run_twice(a)      #输出:Animal is running
run_twice(d)      #输出:Dog is running
run_twice(i)      #输出:I am a Independ

从上面的代码可以看出:run_twice函数接收一个对象x,然后调用该x对象中的方法run(),它并不管传入的对象是继承自哪个类,只要它有run()方法,则可以调用成功, 这便是多态

你可能感兴趣的:([Python学习-多态])