多态:
不同的子类对象调用**相同**的父类方法,产生不同的执行结果
- 多态 可以 增加代码灵活度
- 以继承 和重写父类方法为前提
- 是调用方法的技巧,不会影响到类的内部设计
多态案例:
class Dog(object):
def __init__(self,name):
self.name = name
def game(self):
print("%s蹦蹦跳跳的玩耍。。。"%self.name)
class XiaoTianQuan(Dog):
def game(self):
print("%s飞到天上去玩耍"%self.name)\
class Person(object):
def __init__(self,name):
self.name = name
def game_with_dogs(self,dog):
print("%s和%s快乐的玩耍。。。"%(self.name,dog.name))
# 让狗玩耍
dog.game()
wangcai = Dog("旺财")
xiaoming = Person("小明")
xiaoming.game_with_dogs(wangcai)
wangcao = XiaoTianQuan("哮天犬")
xiaoming.game_with_dogs(wangcao)
运行结果:
小明和旺财快乐的玩耍。。。
旺财蹦蹦跳跳的玩耍。。。
小明和哮天犬快乐的玩耍。。。
哮天犬飞到天上去玩耍
类XiaoTianQuan中的game是对Dog的重写
而无论是旺财还是哮天犬都是父类Dog和子类XiaoTianQuan中的对象,在人中 都调用了 父类Dog中相同的 game方法名,这种方法就叫做多态!!!!!!!
新人创作,若有问题,欢迎大佬们的斧正