0
說我有一個超類和一個如下所示的子類。使用構造函數時的靜態類和動態類
class Super {
public void action() {
System.out.println(「Super’s action」);
}
}
class Sub extends Super() {
public void action() {
System.out.println(「Sub’s action」);
}
}
在我的主要方法中,我稱之爲。
Super s1 = new Super();
s1.action();
Super s2 = new Sub();
s2.action();
Sub s3 = new Sub();
s3.action();
我知道,輸出將是
Super’s action
Sub’s action
Sub’s action
我瞭解到,在構造函數中,第一個字是靜態類類型,與(部分)是動態類。 我知道方法查找將始終在動態類中開始,所以我想知道的是,s2和s3之間有什麼區別? 即具有靜態類是父類的,或靜態類是它自己的類型
將另一個方法放在'Sub'中,嘗試從's2'和's3'中調用它,然後你會回答你自己的問題。 – awksp
在什麼情況下?它們只是用不同的類型,編譯時(或靜態)類型聲明的。 –
看看我的答案[這裏](http://stackoverflow.com/a/24113813/391161)。 – merlin2011