爲什麼在調用默認構造函數時未調用默認構造函數(相同類),但父類的默認構造函數正在調用 - 爲什麼?默認構造函數未調用
class A{
A(){
System.out.println("A()");
}
}
class B extends A{
B(){
System.out.println("B()");
}
}
class C extends B{
C(){
System.out.println("C()");
}
C(int i){
System.out.println("<------>"+i);
}
}
public class sample {
public static void main(String[] args) {
C c = new C(8);
}
}
輸出:
A()
B()
<------>8
從技術上講,這不是默認構造函數。在Java中,如果源中沒有構造函數,則會提供合成的默認構造函數。具有零參數的構造函數被稱爲* no-args *構造函數。這與C++的不同之處在於,在各種情況下默認調用默認構造函數。 (Java語言中唯一一個無參數構造函數將被隱式調用的情況是,子類構造函數不顯式調用「this(...)」或「super(...)」。) – 2011-05-19 13:12:38