多型成員訪問的特點

2021-10-08 04:19:29 字數 1688 閱讀 7393

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...