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

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

問題

次のインターフェースを正しく実装しているクラスはどれですか。(2つ選択)

interface MyType {
	void print();
}

選択肢

A) 
public class MyClass implements MyType {
	public void print() {
		System.out.println("one");
	}
}
B)
public abstract class MyClass implements MyType {
	public void print(String str) {
		System.out.println("one for" + str);
	}
}
C)
public class MyClass implements MyType {
	public void print(String str) {
		System.out.println("one for" + str);
	}
}
D)
public class MyClass implements MyType {
	public String print() {
		return "one";
	}
}
E)
public class MyClass implements MyType {
	private void print() {
		System.out.println("one");
	}
}
F)
public class MyClass implements MyType {
	void print() {
		System.out.println("one");
	}
}

解答

A) 
public class MyClass implements MyType {
	public void print() {
		System.out.println("one");
	}
}
B)
public abstract class MyClass implements MyType {
	public void print(String str) {
		System.out.println("one for" + str);
	}
}
C)
public class MyClass implements MyType {
	public void print(String str) {
		System.out.println("one for" + str);
	}
}
D)
public class MyClass implements MyType {
	public String print() {
		return "one";
	}
}
E)
public class MyClass implements MyType {
	private void print() {
		System.out.println("one");
	}
}
F)
public class MyClass implements MyType {
void print() {
System.out.println("one");
}
}

解説

A)

public class MyClass implements MyType {
public void print() {
System.out.println("one");
}
}

正しい。 print メソッドが正しくオーバーライドされています。

B)

public abstract class MyClass implements MyType {
public void print(String str) {
System.out.println("one for" + str);
}
}

不正解。 print メソッドがオーバーライドされておらず、異なる引数を持っています。

C)

public class MyClass implements MyType {
public void print(String str) {
System.out.println("one for" + str);
}
}

不正解。 print メソッドがオーバーライドされておらず、異なる引数を持っています。

D)

public class MyClass implements MyType {
public String print() {
return "one";
}
}

不正解。 戻り値の型が void ではなく String になっています。

E)

public class MyClass implements MyType {
private void print() {
System.out.println("one");
}
}

不正解。 アクセス修飾子が private になっており、インターフェースの要件を満たしていません。

F)

public class MyClass implements MyType {
void print() {
System.out.println("one");
}
}

不正解。 アクセス修飾子が default になっており、インターフェースの要件を満たしていません。

結論

正しく実装しているのは A のみです。選択肢の中には他に正しい実装はありません。

前の問題へ SE17_B-05

次の問題へ SE17_B-07

対象資格:Java SE17 認定資格