Python面向對象之多態(tài)原理與用法案例分析
本文實例講述了Python面向對象之多態(tài)原理與用法。分享給大家供大家參考,具體如下:
目標
多態(tài)
面向對象三大特性
封裝 根據 職責 將 屬性 和 方法 封裝 到一個抽象的 類 中
定義類的準則
繼承 實現(xiàn)代碼的重用,相同的代碼不需要重復的編寫
設計類的技巧
子類針對自己特有的需求,編寫特定的代碼
多態(tài) 不同的 子類對象 調用相同的 父類方法,產生不同的執(zhí)行結果
多態(tài) 可以 增加代碼的靈活度
以 繼承 和 重寫父類方法 為前提
是調用方法的技巧,不會影響到類的內部設計

多態(tài)案例演練
需求
1.在 Dog 類中封裝方法 game
普通狗只是簡單的玩耍
2.定義 XiaoTianDog 繼承自 Dog,并且重寫 game 方法
哮天犬需要在天上玩耍
3.定義 Person 類,并且封裝一個 和狗玩 的方法
在方法內部,直接讓 狗對象 調用 game 方法

案例小結
Person 類中只需要讓 狗對象 調用 game 方法,而不關心具體是 什么狗
game 方法是在 Dog 父類中定義的
在程序執(zhí)行時,傳入不同的 狗對象 實參,就會產生不同的執(zhí)行效果
多態(tài) 更容易編寫出出通用的代碼,做出通用的編程,以適應需求的不斷變化!
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. 創(chuàng)建一個狗對象
# wangcai = Dog("旺財")
wangcai = XiaoTianDog("飛天旺財")
# 2. 創(chuàng)建一個小明對象
xiaoming = Person("小明")
# 3. 讓小明調用和狗玩的方法
xiaoming.game_with_dog(wangcai)
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數(shù)據結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。

