Java no memo

自分のためのJavaメモ。

Java 初級問題② コンストラクタと継承

問1

// Monster.java
public class Monster(){
    private String name;

    public Monster(String name) {
        super(); //←A
        this.name = name;
    }
}

// Test.java
public class Test(){
    public static void main(String[] args) {
        Monster e = new Monster(); //←B
    }
}

1-1.Aのsuper();は何か説明してください。 1-2.Bの場所でエラーが出ます。解消法を3パターン答えてください。

問2

答え

1-1.スーパークラスコンストラクタの呼び出し。 この場合のスーパークラスjava.lang.Object。 1-2.[1]Bにて引数(name)を渡す。new Monster("名前")。 もしくは[2]Monsterクラスにデフォルトコンストラクタを明記する。 もしくは[3]Monsterクラスの引数ありのコンストラクタを削除する。 ※デフォルトコンストラクタを書かずに引数ありのコンストラクタを書く場合、引数なしのインスタンスは作れない。