我試着運行下面的代碼,它給了我一個constructor A in class A cannot be applied to given types
錯誤。空的構造函數的必要性
class A{
int a;
A(int b){
a = b;
}
}
public static void main (String[] args) throws java.lang.Exception
{
A a = new A();
System.out.println(a.a);
}
如果刪除從A
類c'tor然而代碼運行正常(和輸出0
)。看起來,如果存在另一個c'tor,則沒有默認的c'tor(並且只有在寫入時才存在更少的c'tor參數)。我對麼? 更重要的是,這是爲什麼?
是的,如果一個構造函數已經存在,編譯器將不會創建另一個。爲什麼?那麼,爲什麼編譯器應該假設你總是需要一個公共的no-params構造函數呢? – 2014-09-21 16:01:00
閱讀:http://beginnersbook.com/2013/05/constructor-overloading/ – BatScream 2014-09-21 16:04:02