8
請看看這段代碼:爪哇 - 擴展爲什麼超變量是0
class Sup {
int a = 8;
public void printA() {
System.out.println(a);
}
Sup() {
printA();
}
}
public class Sub extends Sup {
int a = 9;
@Override
public void printA() {
System.out.println(a);
}
Sub() {
printA();
}
public static void main(String[] args) {
Sub sub = new Sub();
}
}
結果: 控制檯打印:0 9
我知道,子類將首先調用父constructor
但是,爲什麼是0 9
,而不是8 9
?
您確定按照您認爲的順序調用構造函數嗎? –
@ cricket_007:當然這是所謂的。你**不能**避免在Java中調用它。 –
@ T.J.Crowder您可以通過使用序列化或克隆來避免它。 – Flown