面向對象三大特性python
多態 不一樣的 子類對象 調用相同的 父類方法,產生不一樣的執行結果編程
spa
需求設計
Dog
類中封裝方法 game
XiaoTianDog
繼承自 Dog
,而且重寫 game
方法
Person
類,而且封裝一個 和狗玩 的方法
game
方法
code
案例小結對象
Person
類中只須要讓 狗對象 調用 game
方法,而不關心具體是 什麼狗
game
方法是在 Dog
父類中定義的多態 更容易編寫出出通用的代碼,作出通用的編程,以適應需求的不斷變化!blog
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 game_with_dog(self, dog): print("%s 和 %s 快樂的玩耍..." % (self.name, dog.name)) # 讓狗玩耍 dog.game() # 1. 建立一個狗對象 # wangcai = Dog("旺財") wangcai = XiaoTianDog("飛天旺財") # 2. 建立一個小明對象 xiaoming = Person("小明") # 3. 讓小明調用和狗玩的方法 xiaoming.game_with_dog(wangcai)