1.概念
多态:不同的子类对象,调用相同的父类方法,产生不同的执行结果。
多态以继承和重写父类方法为前提。
多态可以增加代码的灵活性。
2.案例演练
人和普通的狗玩耍,或者和哮天犬玩耍。
Person类中只需要让狗对象调用game方法,在程序执行的时候,传入不同的狗对象实参,就会产生不同的执行结果。
class Dog(object):
def __init__(self, name):
self.name = name
def game(self):
print("%s 在快乐的玩耍..." % self.name)
class XiaoTianDog(Dog):
def game(self):
print("%s 飞到天上快乐的玩耍..." % self.name)
class Person(object):
def __init__(self, name):
self.name = name
def person_with_game(self, dog):
print("%s 和 %s 正在一起玩耍" % (self.name, dog.name))
dog.game()
# wangcai = Dog("旺财") # 调用的Dog的game的代码
wangcai = XiaoTianDog("飞天旺财") # 调用的XiaoTianDog的代码
xiaoming = Person("小明")
xiaoming.person_with_game(wangcai) # 人对象的代码没有改动,均为dog.name