2013-01-06 185 views
0

我試圖理解爲什麼這個代碼編譯:爲什麼不編譯這個代碼?

public class A { 
} 

public class B extends A { 
    public B() { 
    } 
} 

而此代碼不:

public class A { 
    public A(int n) { 
    } 
} 

public class B extends A { 
    public B() { 
    } 
} 

我的意思是,沒有A類有一個坯料構造案件?如果是這樣,爲什麼它不工作?

在此先感謝

+0

錯誤說的是什麼? –

回答

6

當超僅具有參數的構造器,你需要明確地讓你的父類的構造函數調用從你的子類,如下圖所示。

public B() { 
    super(2);// passing an int value to your super class cons 
} 

沒有A類在這兩種情況下一個空的構造函數?

號如果聲明構造那麼編譯器將不包括默認的構造函數,因此你class A沒有一個默認的情況下,2無參數的構造函數,你必須明確地使從超通話你的子類的構造函數。