1. 程式人生 > 實用技巧 >Java基礎——類的多型

Java基礎——類的多型

多型

學習完封裝和繼承後,Java三大特性之一還有最後一個多型
那麼多型是什麼?

概念

多型字面含義就是多種表現形式
對應Java:同一操作作用於不同的類的物件,將產生不同的執行結果。

實現

向上轉型

基類引用指向派生類物件

//Cat為基類
//Ragdoll為派生類
class Demo{
      public static void main(String args[]){
            //向上轉型
            Cat cat = new Ragdoll();
      }
}

向上轉型既可以使用派生類強大的功能,又可以抽取基類的共性。
不能呼叫派生類中定義,而基類中沒有的方法、屬性。

為什麼能向上轉型

自動實現,編譯器自動將派生類例項轉為通用性基類。

執行基類|派生類的方法

執行派生類的方法。

多型的實現,一個基類可以有多個派生類。
每個派生類重寫基類的方法,(相同方法的實現不同)
基類引用呼叫派生類方法,體現了多型

繫結

動態繫結(後期繫結、執行時繫結):執行期間,根據物件的實際型別呼叫方法。

Java多型通過動態繫結實現。

多型前提:

  • 繼承
  • 重寫
  • 基類引用指向派生類物件

一個基類引用,指向不同的派生類物件,執行該方法時,表現出不同的行為。

執行方法

前提

  1. 基類引用呼叫派生類物件
方法 基類的方法 派生類的方法 不執行
基類中定義,派生類中重寫的方法
基類中定義,派生類中沒有重寫的方法
基類中沒有,派生類中定義的方法

應用意義

  1. 增強程式碼的可維護性
    • 封裝通過合併特徵和行為建立新的資料型別,將細節私有化,把介面和實現分離
    • 多型通過分離 做什麼、怎麼做,消除型別的耦合關係,將介面和實現分離
  2. 增強程式碼的可擴充套件性

部落格相關java專案:檢視Github專案
對應github專案:Demo5
匯入專案的方法: Java基礎——Java如何匯入本地專案