多態、向上轉型、向下轉型、instanceof 運算符、
阿新 • • 發佈:2017-07-14
sta als 對象 類方法 接口 可能 size 類對象 代碼
多態
多態是具有表現多種形態能力的特征。更專業的說法: 同一個實現接口,使用不同的實例而執行不同的操作。
多態性與繼承、方法重寫密切相關
1.繼承的存在(繼承是多態的基礎,沒有繼承就沒有多態)
2.子類重寫父類的方法(多態下調用子類重寫後的方法)
3.父類引用變量指向子類對象(子類到父類的類型轉換)
向上轉型
向上轉型首先是安全的,但有可能會導致子類方法的丟失,特有的方法會丟失,繼承的方法可以調用
1.將一個父類的引用指向一個子類的對象,稱為向上轉型 ,自動進行類型轉換
2.此時通過父類引用變量調用的方法是子類覆蓋或繼承父類的方法,不是父類的方法
3.此時通過父類引用變量無法調用子類特有的方法
使用父類作為方法形參實現多態
使用父類作為方法的返回值實現多態
父類到子類的轉換(向下轉型)
當需要調用子類特有的方法時,可以通過將父類再轉換為子類來實現
將一個指向子類對象的父類引用賦給一個子類的引用,稱為向下轉型,此時必須進行強制類型轉換
instanceof 運算符
如果沒有轉換為真實的子類類型,就會出現類型轉換異常。
對象 instanceof 類或接口
該運算符用來判斷一個對象是否屬於一個類或者實現了一個接口,結果為 true 或 false 。 在強制類型轉換之前通過 instanceof 運算符檢查對象的真實類型,再進行相應的強制類型轉換,這樣就可以避免類型轉換異常,從而提高代碼的健壯性。
向下轉型是不安全的 要用 instanceof 來進行判斷可以調用子類的特有方法, 向下轉型就是先判斷後強轉
多態、向上轉型、向下轉型、instanceof 運算符、