問題
次のコードのクラスをインスタンス化できないものはどれですか。(3つ選択)
record Person(String name) {}
class Parent {
String name;
public Parent(String name) {}
}
class Child extends Parent {
public Child() { super("Scott");}
}
class GrandChild extends Child {
public GrandChild() {}
public GrandChild(String name) {}
}
選択肢
A) Child e = new Child () ;
B) GrandChild g = new GrandChild() ;
C) Person a = new Person("Duke");
D) GrandChild h = new GrandChild("Duke");
E) Person b = new Person();
F) Parent c = new Parent();
G) Child f = new Child("Duke");
H) Parent d = new Parent("Duke");
解答
A) Child e = new Child () ;
B) GrandChild g = new GrandChild() ;
C) Person a = new Person("Duke");
D) GrandChild h = new GrandChild("Duke");
E) Person b = new Person();
F) Parent c = new Parent();
G) Child f = new Child("Duke");
H) Parent d = new Parent("Duke");
解説
E) Person b = new Person();の選択肢は、PersonクラスのコンストラクタPerson()は未定義のため、コンパイルエラーとなるため、インスタンス化できません。
F) Parent c = new Parent();の選択肢は、ParentクラスのコンストラクタParent()は未定義のため、コンパイルエラーとなるため、インスタンス化できません。
G) Child f = new Child(“Duke”);の選択肢は、Childクラスのコンストラクタには引数を1つ受け取るコンストラクタが未定義のため、コンパイルエラーとなるため、インスタンス化できません。
対象資格:Java SE17 認定資格