デフォルトコンストラクタが無くなる
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
Item item = new Item();
System.out.println("ok");
}
}
class Item {
Item(String name) {
}
}
- A
okと出力される - B 実行時に例外が発生する
- C コンパイルエラーになる
- D 何も出力されない
正解と解説を見る
正解: C
- A: 実行まで進まないので、何も出力されません。
- B: コンストラクタの有無はコンパイル時に見つかります。
- C:
Item(String)を書いたので、引数なしのデフォルトコンストラクタは作られず、new Item()はコンパイルエラーです。 - D: 実行まで進まないので、何も出力されません。
ポイント
- コンストラクタを1つも書かなかったときだけ、引数なしのデフォルトコンストラクタが自動で作られます。