【Java SE17 Silver 模擬試験】B-15

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコード断片の [ 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クラスの引数なしのコンストラクタが未定義です。

前の問題へ SE17_B-14

次の問題へ SE17_B-16

対象資格:Java SE17 認定資格