多態性:多態性是指允許不同子類型的物件對相同訊息作出不同的回應。簡單的說就是用同樣的物件引用呼叫同樣的方法但是做了不同的事情。多態性分為編譯時的多態性與執行時期的多態性。
如果將物件的方法視為物件向外界提供的服務,那麼運行時的多態性可以解釋為:當A系統存取B系統提供的服務時,B系統有多種提供服務的方式,但一切對A系統來說都是透明的(就像電動刮鬍刀是A系統,它的供電系統是B系統,B系統可以使用電池供電或用交流電,甚至還有可能是太陽能,A系統只會透過B類物件呼叫供電的方法,但並不知道供電系統的底層實作是什麼,究竟透過何種方式獲得了動力)。
方法重載(overload)實作的是編譯時的多態性(也稱為前綁定),而方法重寫(override)實作的是執行時期的多態性(也稱為後綁定)。
執行階段的多型是物件導向最精髓的東西,要實作多型別需要做兩件事:
方法重寫(子類別繼承父類別並重寫父類別中已有的或抽象的方法);
物件造型(用父類型引用引用子類型對象,這樣同樣的引用調用同樣的方法就會根據子類別物件的不同而表現出不同的行為)。
1 2 |
|
運行時多態的使用範例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
|
多態的三要素:1.繼承2.重寫 3.父類別引用指向子類別物件。
相關學習推薦:java基礎教學
以上是java中的多態怎麼理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!