多態(tài)的意義
? ? ? ? ?在面向?qū)ο缶幊蹋∣OP)照藻,多態(tài)機(jī)制無疑是其最具特色的功能袜啃,甚至可以說,不運(yùn)用多態(tài)的編程不能稱之為OOP岩梳。這也是為什么有人說囊骤,使用面向?qū)ο笳Z言的編程和面向?qū)ο蟮木幊淌莾纱a事。多態(tài)并沒有一個嚴(yán)格的定義重載就是多態(tài)的一個例子冀值,運(yùn)行時運(yùn)行的時候調(diào)用的是確定的方法也物。
? ? ? ? 通常所說的多態(tài)指的都是運(yùn)行時多態(tài),也就是不確定究竟調(diào)用哪個具體方法列疗,一直延遲到運(yùn)行時才能確定滑蚯。其核心之處就在于對父類方法的改寫或?qū)涌诜椒ǖ膶崿F(xiàn),以取得在運(yùn)行時不同的執(zhí)行效果。
? ? ? ? 多態(tài)是面向?qū)ο蟮闹匾匦?簡單點(diǎn)說:“一個接口告材,多種實現(xiàn)”坤次,就是同一種事物表現(xiàn)出的多種形態(tài)。
? ? ? ? 編程其實就是一個將具體世界進(jìn)行抽象化的過程斥赋,多態(tài)就是抽象化的一種體現(xiàn)缰猴,把一系列具體事物的共同點(diǎn)抽象出來,再通過這個抽象的事物,與不同的具體事物進(jìn)行對話。對不同類的對象發(fā)出相同的消息將會有不同的行為疤剑。
? ? ? ? 多態(tài)是面向?qū)ο蟪绦蛟O(shè)計和面向過程程序設(shè)計的主要區(qū)別之一滑绒,何謂多態(tài)?“龍生九子隘膘,子子不同”多態(tài)就是同一個處理手段可以用來處理多種不同的情況疑故。
? ? ? ? ?比如有一個函數(shù)是叫某個人來吃飯,函數(shù)要求傳遞的參數(shù)是人的對象弯菊,可是來了一個美國人纵势,你看到的可能是用刀和叉子在吃飯,而來了一個中國人你看到的可能是用筷子在吃飯管钳,這就體現(xiàn)出了同樣是一個方法钦铁,可以卻產(chǎn)生了不同的形態(tài),這就是多態(tài)蹋嵌!復(fù)用相同接口育瓜,實現(xiàn)不同的操作。
為什么要用多態(tài):
? ? ? ? ?不使用多態(tài)的話就要針對不同的對象逐一定義方法栽烂。若一個類有很多很多子類躏仇,那么代碼量是非常龐大的。因此腺办,多態(tài)就非常有用了焰手,對寫高質(zhì)量的代碼應(yīng)該會有幫助!
? ? ? ? ? 沒有繼承就沒有多態(tài)怀喉,多態(tài)就是少一些函數(shù)名书妻。
多態(tài)的使用
? ? ? ? ? ? ? ? ?當(dāng)治療方法在執(zhí)行的過程中,根據(jù)傳遞的數(shù)據(jù)的不同躬拢,在執(zhí)行時調(diào)用
? ? ? ? ? ? ? ? ?不同的處理代碼或者處理函數(shù)躲履,來完成治療效果,動態(tài)處理(多態(tài))
? ? ? ? ? ? ? ? ?人的類型VS動物類型聊闯,不是多態(tài)~而是通過if條件判斷執(zhí)行代碼
? ? ? ? ? ? ? ? ?人/男人/女人工猜,執(zhí)行的代碼一致【運(yùn)行過程中,才確定調(diào)用誰的方法】