1. 程式人生 > >多態、向上轉型、向下轉型、instanceof 運算符、

多態、向上轉型、向下轉型、instanceof 運算符、

sta als 對象 類方法 接口 可能 size 類對象 代碼

多態

多態是具有表現多種形態能力的特征。更專業的說法: 同一個實現接口,使用不同的實例而執行不同的操作。

多態性與繼承、方法重寫密切相關

1.繼承的存在(繼承是多態的基礎,沒有繼承就沒有多態)

2.子類重寫父類的方法(多態下調用子類重寫後的方法)

3.父類引用變量指向子類對象(子類到父類的類型轉換)

向上轉型

向上轉型首先是安全的,但有可能會導致子類方法的丟失,特有的方法會丟失,繼承的方法可以調用

1.將一個父類的引用指向一個子類的對象,稱為向上轉型 ,自動進行類型轉換

2.此時通過父類引用變量調用的方法是子類覆蓋或繼承父類的方法,不是父類的方法

3.此時通過父類引用變量無法調用子類特有的方法

使用父類作為方法形參實現多態

使用父類作為方法的返回值實現多態

父類到子類的轉換(向下轉型)

當需要調用子類特有的方法時,可以通過將父類再轉換為子類來實現

將一個指向子類對象的父類引用賦給一個子類的引用,稱為向下轉型,此時必須進行強制類型轉換

instanceof 運算符

如果沒有轉換為真實的子類類型,就會出現類型轉換異常。

對象 instanceof 類或接口

該運算符用來判斷一個對象是否屬於一個類或者實現了一個接口,結果為 true 或 false 。 在強制類型轉換之前通過 instanceof 運算符檢查對象的真實類型,再進行相應的強制類型轉換,這樣就可以避免類型轉換異常,從而提高代碼的健壯性。

向下轉型是不安全的 要用 instanceof 來進行判斷可以調用子類的特有方法, 向下轉型就是先判斷後強轉

多態、向上轉型、向下轉型、instanceof 運算符、