多态的概念
多态:不同的子类对象调用相同的父类方法,产生不同的执行结果
多态可以增加代码的灵活度
以继承和重写父类方法为前提
例子
1.在Dog类中封装方法game
2. 定义XiaoTianDog继承自Dog,并且重写game方法
3. 定义Person类,并且封装一个和狗玩的方法
class Dog():
def __init__(self,name):
self.name=name
def game(self):
print("愉快的玩耍")
class XiaoTianDog(Dog):
def game(self):
print("在天上玩耍")
class Person():
def __init__(self,name):
self.name=name
def play_game(self,dog):
print(" %s 和 %s 在一起玩耍"%(self.name,dog.name))
dog.game()
xiaoming=Person("小明")
wangcai=Dog("旺财")
xiaotianquan=XiaoTianDog("啸天犬")
xiaoming.play_game(wangcai)
xiaoming.play_game(xiaotianquan)
运行结果:
小明 和 旺财 在一起玩耍
愉快的玩耍
小明 和 啸天犬 在一起玩耍
在天上玩耍