⑴ java中,什麼時候需要new來實例化
(1)同一個對象在不同時刻體現出來的不同狀態。
(2)多態的前提:
A:有繼承或者實現關系。
B:有方法重寫。
C:有父類或者父介面引用指向子類對象。
多態的分類:
a:具體類多態
class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
b:抽象類多態
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
c:介面多態
interface Fu {}
class Zi implements Fu {}
Fu f = new Zi();
(3)多態中的成員訪問特點
A:成員變數
編譯看左邊,運行看左邊
B:構造方法
子類的構造都會默認訪問父類構造
C:成員方法
編譯看左邊,運行看右邊
D:靜態方法
編譯看左邊,運行看左邊
為什麼?
因為成員方法有重寫。
(4)多態的好處:
A:提高代碼的維護性(繼承體現)
B:提高代碼的擴展性(多態體現)
(5)多態的弊端:
父不能使用子的特有功能。
現象:
子可以當作父使用,父不能當作子使用。
(6)多態中的轉型
A:向上轉型
從子到父
B:向下轉型
從父到子
⑵ 在java多態中,編譯看左邊,運行看右邊是什麼意思,哪位大俠能幫忙詳細解釋一下 謝謝了.
Animal c = new Cat(); 左邊是 Animal 類(或介面) 右邊是 Cat()類; 在編譯的時候編譯器不管你右邊是什麼類,只要左邊的Animal類(或介面)能編譯通過就不會報錯。但是運行的時候就要按照右邊的Cat()類實際情況來運行。