問題
次のコード断片の [ A ] の箇所に記述してインターフェースのメソッドを実装できるものはどれですか。(2つ選択)
interface MyType {
Parent method(int id);
}
class MyClass implements MyType {
//[ A ]
}
class Parent {
public int id;
public Parent(int id) {
this.id = id;
}
}
class Child extends Parent {
public Child(int id) {
super(id);
}
}
選択肢
A) public Parent method(Integer id) { { return new Parent(id); } }
B) public Child method(int id) { { return new Child(id); } }
C) public Child method(Integer id) { { return new Child(id); } }
D) public Child method(int id) { { return new Parent(id); } }
E) public Parent method(int id) { { return new Child(id); } }
F) public Object method(int id) { { return new Parent(); } }
解答
A) public Parent method(Integer id) { { return new Parent(id); } }
B) public Child method(int id) { { return new Child(id); } }
C) public Child method(Integer id) { { return new Child(id); } }
D) public Child method(int id) { { return new Parent(id); } }
E) public Parent method(int id) { { return new Child(id); } }
F) public Object method(int id) { { return new Parent(); } }
解説
A) public Parent method(Integer id) { { return new Parent(id); } }
インターフェースMyTypeのmethod()の抽象メソッドを実装する必要があります。
Integer型では実装できていません。
C) public Child method(Integer id) { { return new Child(id); } }
インターフェースMyTypeのmethod()の抽象メソッドを実装する必要があります。
Integer型では実装できていません。
D) public Child method(int id) { { return new Parent(id); } }
returnされる型が不一致のため、コンパイルエラーとなります。
F) public Object method(int id) { { return new Parent(); } }
Parentクラスの引数なしのコンストラクタが未定義です。
対象資格:Java SE17 認定資格