多型是物件導向的重要特性,簡單點說:「乙個介面,多種實現」,就是同一種事物表現出的多種形態。
程式設計其實就是乙個將具體世界進行抽象化的過程,多型就是抽象化的一種體現,把一系列具體事物的共同點抽象出來, 再通過這個抽象的事物, 與不同的具體事物進行對話。
對不同類的物件發出相同的訊息將會有不同的行為。比如,你的老闆讓所有員工在九點鐘開始工作, 他只要在九點鐘的時候說:「開始工作」即可,而不需要對銷售人員說:「開始銷售工作」,對技術人員說:「開始技術工作」, 因為「員工」是乙個抽象的事物, 只要是員工就可以開始工作,他知道這一點就行了。至於每個員工,當然會各司其職,做各自的工作。
多型允許將子類的物件當作父類的物件使用,某父型別的引用指向其子型別的物件,呼叫的方法是該子型別的方法。這裡引用和呼叫方法的**編譯前就已經決定了,而引用所指向的物件可以在執行期間動態繫結。再舉個比較形象的例子:
比如有乙個函式是叫某個人來吃飯,函式要求傳遞的引數是人的物件,可是來了乙個美國人,你看到的可能是用刀和叉子在吃飯,而來了乙個中國人你看到的可能是用筷子在吃飯,這就體現出了同樣是乙個方法,可以卻產生了不同的形態,這就是多型!
多型的作用:
1. 應用程式不必為每乙個派生類編寫功能呼叫,只需要對抽象基類進行處理即可。大大提高程式的可復用性。//繼承
2. 派生類的功能可以被基類的方法或引用變數所呼叫,這叫向後相容,可以提高可擴充性和可維護性。
在上周五的課堂上沒有怎麼明白,今天經同學指點,理解了多型,並能寫出簡單的**。
java的多型總結
老畢的 編譯看左邊,執行看右邊 多型執行 對物件導向語言中理解多型 繼承很有幫助 在多型中,非靜態成員函式的特點 編譯看左邊,執行看右邊。老畢在講到多型執行問題時,結合下面的例子,給我們總結了一套口訣 成員變數,靜態方法看左邊 非靜態方法 編譯看左邊,執行看右邊。意思是 當父類變數引用子類物件時 f...
java 多型總結
多型 01 父類的引用指向自己子類的多型 02 多型的存在提高了程式的擴充套件性 03 多型的前提 必須是類與類之間有關係 要麼繼承要麼實現 還有就是存在覆蓋 04 子類向上轉型 和父類向下轉型 instanceof abstract class animal class car extends a...
java多型總結
簡單的說就是父類引用指向子類物件.一種方法,多種實現.規則 成員變數 編譯看左邊 父類 執行看左邊 父類 成員方法 編譯看左邊 父類 執行看右邊 子類,動態繫結 public class polymorphic 成員變數 編譯看左邊 父類 執行看左邊 父類 成員方法 編譯看左邊 父類 執行看右邊 子...