1. 程式人生 > >Java面向物件之多型(精簡版)

Java面向物件之多型(精簡版)

2.1實現條件

      在剛剛開始就提到了繼承在為多型的實現做了準備。子類Child繼承父類Father,我們可以編寫一個指向子類的父類型別引用,該引用既可以處理父類Father物件,也可以處理子類Child物件,當相同的訊息傳送給子類或者父類物件時,該物件就會根據自己所屬的引用而執行不同的行為,這就是多型。即多型性就是相同的訊息使得不同的類做出不同的響應。

      Java實現多型有三個必要條件:繼承、重寫、向上轉型。

         繼承:在多型中必須存在有繼承關係的子類和父類。

         重寫:子類對父類中某些方法進行重新定義,在呼叫這些方法時就會呼叫子類的方法。

         向上轉型:在多型中需要將子類的引用賦給父類物件,只有這樣該引用才能夠具備技能呼叫父類的方法和子類的方法。

         只有滿足了上述三個條件,我們才能夠在同一個繼承結構中使用統一的邏輯實現程式碼處理不同的物件,從而達到執行不同的行為。

      對於Java而言,它多型的實現機制遵循一個原則:當超類物件引用變數引用子類物件時,被引用物件的型別而不是引用變數的型別決定了呼叫誰的成員方法,但是這個被呼叫的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法。

例項如下: