parent p = new child();
成員變數
編譯看左邊(基類),執行看左邊(基類);無論如何都是訪問基類的成員變數。
成員方法
編譯看左邊(基類),執行看右邊(派生類),動態繫結。
static方法
編譯看左邊(基類),執行看左邊(基類)。
只有非靜態的成員方法,編譯看左邊,執行看右邊。
這樣,我們也可以得出多型的侷限:
不能使用派生類特有的成員屬性和派生類特有的成員方法。
**舉例:
建立父類animal類
public class animal
public string getname()
public int getage()
public int getrank()
public static int getstaticrank()
}
建立子類cat
public class cat extends animal
public int getage()
public int getrank()
public static int getstaticrank()
}
建立子類dog
public class dog extends animal
public int getage()
public int getrank()
public static int getstaticrank()
}
驗證
public class test
}
輸出結果
***********************************=
animal : animal
cat : cat
dog : dog
***********************************=
animal age is 1
cat age is 1
dog age is 1
***********************************=
animal get age is 1
cat get age is 2
dog get age is 3
***********************************=
animal rank is 11
cat rank is 11
dog rank is 11
***********************************=
animal get rank is 11
cat get rank is 22
dog get rank is 33
***********************************=
animal get static rank is 11
cat get static rank is 11
dog get static rank is 11
參考: 多型成員的訪問特點
多型 同乙個物件 事物 在不同時刻體現出來的不同狀態。舉例 貓是貓,貓是動物。水 液體,固體,氣態 多型的前提 a 要有繼承關係。b 要有方法重寫。其實沒有也是可以的,但是如果沒有這個就沒有意義。動物 d new 貓 d.show 動物 d new 狗 d.show c 要有父類引用指向子類物件。父...
多型成員的特點
多型的成員特點 1 成員變數,編譯時看左邊,執行的時候看右邊 2 成員方法,編譯時看左邊,執行的時候看右邊 3 靜態方法,編譯時看左邊,執行的時候看左邊package fangfa.com public class jiekou class father public static void nam...
多型的成員的特點
在編譯時期 參閱引用型別變數所屬的類中是否有呼叫的方法.如果有,編譯通過,如果沒有編譯失敗.在執行時期 參閱物件所屬的類中是否有呼叫的方法.簡單的總結就是 成員函式在多型呼叫時,編譯看左邊 執行看右邊.無論編譯和執行,都參考左邊 引用型別所屬的類 無論編譯和執行,都參考左邊.class a clas...