【JAVA 學習】 多型的向上轉型與向下轉型
阿新 • • 發佈:2022-03-09
多型的前提:兩個物件(類)存在繼承關係
向上轉型:
本質:父類的引用指向子類的物件
語法:父類型別 引用名 = new 子類型別();
特點:編譯型別看左邊,執行型別看右邊;
規則:(1)、可以呼叫父類中的所有成員(需遵守訪問許可權)
(2)、但是不能呼叫子類的特有的成員
(3)、因為在編譯階段,能呼叫哪些成員,是由編譯型別來決定的
(4)、最終執行效果看子類(即執行型別)的具體實現,呼叫方法時,按照從子類(執行型別)開始查詢,然後呼叫
***屬性沒有重寫之說,屬性的值看編譯型別***
向下轉型:
語法:子類型別 引用名 = (子類型別)父類引用;
只能強轉父類的引用,不能強轉父類的物件;
要求父類引用必須指向的是當前目標型別的物件
當向下轉型後,可以呼叫子類型別中所有成員
***instanceOf 比較操作符,用於判斷物件的執行型別是否為XX型別,或XX型別的子型別***
java的動態繫結機制
1、當呼叫物件方法時,該方法會和該物件的記憶體地址(執行型別)繫結
2、當呼叫物件屬性時,沒有動態繫結機制,哪裡宣告,哪裡使用