面向对象有三大特征:封装、继承以及多态。前面几篇博客介绍了封装以及继承,今天来说说多态。
Python 【面向对象:多态】_python这是题目要求,下面的小结可以看完代码后回过头来看

#多态
class Car(object) :
    def __init__(self, name):
        self.name = name
    def drive(self):
        print('%s慢慢地开' %self.name)

class Ferrari(Car) :
    def __init__(self, name):
        self.name = name
    def drive(self):
        print('%s快快地开' %self.name)

class Person(object) :
    def __init__(self, name):
        self.name = name
    def drive_using_car(self, car):
        print('%s开%s' %(self.name, car.name))
        car.drive()   #不关心什么车,只需要让车对象调用drive方法即可

    #dazhong = Car('大众')
    ferrari = Ferrari('法拉利')
    xiaoming = Person('小明')
    #xiaoming.drive_using_car(dazhong)
    xiaoming.drive_using_car(ferrari)

这个结果为

小明开法拉利
法拉利快快地开

如果使用

dazhong = Car('大众')
#ferrari = Ferrari('法拉利')
xiaoming = Person('小明')
xiaoming.drive_using_car(dazhong)
#xiaoming.drive_using_car(ferrari)

则结果为

小明开大众
大众慢慢地开

多态即调用不同的子类对象,调用相同的方法,产生不同的结果!