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クラスの引数ありのコンストラクタを削除する。 ※デフォルトコンストラクタを書かずに引数ありのコンストラクタを書く場合、引数なしのインスタンスは作れない。