1. 程式人生 > 其它 >【JAVA 學習】 多型的向上轉型與向下轉型

【JAVA 學習】 多型的向上轉型與向下轉型

多型的前提:兩個物件(類)存在繼承關係

向上轉型:

  本質:父類的引用指向子類的物件

  語法:父類型別  引用名 = new 子類型別();

  特點:編譯型別看左邊,執行型別看右邊;

  規則:(1)、可以呼叫父類中的所有成員(需遵守訪問許可權)

     (2)、但是不能呼叫子類的特有的成員

       (3)、因為在編譯階段,能呼叫哪些成員,是由編譯型別來決定的

     (4)、最終執行效果看子類(即執行型別)的具體實現,呼叫方法時,按照從子類(執行型別)開始查詢,然後呼叫

***屬性沒有重寫之說,屬性的值看編譯型別***

向下轉型:

  語法:子類型別  引用名 = (子類型別)父類引用;

  只能強轉父類的引用,不能強轉父類的物件;

  要求父類引用必須指向的是當前目標型別的物件

  當向下轉型後,可以呼叫子類型別中所有成員

***instanceOf 比較操作符,用於判斷物件的執行型別是否為XX型別,或XX型別的子型別***

 

java的動態繫結機制

  1、當呼叫物件方法時,該方法會和該物件的記憶體地址(執行型別)繫結

  2、當呼叫物件屬性時,沒有動態繫結機制,哪裡宣告,哪裡使用