Java基礎——類的多型
阿新 • • 發佈:2020-07-29
多型
學習完封裝和繼承後,Java三大特性之一還有最後一個多型
那麼多型是什麼?
概念
多型字面含義就是多種表現形式
對應Java:同一操作作用於不同的類的物件,將產生不同的執行結果。
實現
向上轉型
基類引用指向派生類物件
//Cat為基類
//Ragdoll為派生類
class Demo{
public static void main(String args[]){
//向上轉型
Cat cat = new Ragdoll();
}
}
向上轉型既可以使用派生類強大的功能,又可以抽取基類的共性。
不能呼叫派生類中定義,而基類中沒有的方法、屬性。
為什麼能向上轉型
自動實現,編譯器自動將派生類例項轉為通用性基類。
執行基類|派生類的方法
執行派生類的方法。
多型的實現,一個基類可以有多個派生類。
每個派生類重寫基類的方法,(相同方法的實現不同)
基類引用呼叫派生類方法,體現了多型。
繫結
動態繫結(後期繫結、執行時繫結):執行期間,根據物件的實際型別呼叫方法。
Java多型通過動態繫結實現。
多型前提:
- 繼承
- 重寫
- 基類引用指向派生類物件
一個基類引用,指向不同的派生類物件,執行該方法時,表現出不同的行為。
執行方法
前提
- 基類引用呼叫派生類物件
方法 | 基類的方法 | 派生類的方法 | 不執行 |
---|---|---|---|
基類中定義,派生類中重寫的方法 | |||
基類中定義,派生類中沒有重寫的方法 | |||
基類中沒有,派生類中定義的方法 |
應用意義
- 增強程式碼的可維護性
- 封裝通過合併特徵和行為建立新的資料型別,將細節私有化,把介面和實現分離
- 多型通過分離 做什麼、怎麼做,消除型別的耦合關係,將介面和實現分離
- 增強程式碼的可擴充套件性
部落格相關java專案:檢視Github專案
對應github專案:Demo5
匯入專案的方法: Java基礎——Java如何匯入本地專案