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

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

問題

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

public sealed interface MyType permits MyClass { }

選択肢

A)
public class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}
B)
public abstract class MyClass implements MyType { }
C)
public abstract class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}
D)
public sealed class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}
E)
public non-sealed class MyClass implements MyType { }
F)
public final class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}

解答

A)
public class MyClass implements MyType {
public void method() {
System.out.println("MyType::method");
}
}
B)
public abstract class MyClass implements MyType { }
C)
public abstract class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}
D)
public sealed class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}
E)
public non-sealed class MyClass implements MyType { }
F)
public final class MyClass implements MyType {
	public void method() {
		System.out.println("MyType::method");
	}
}

解説

選択肢 A:

  • MyClassMyTypeを実装していますが、sealedインターフェースのpermitsに従っていないため不正です。

選択肢 B:

  • MyClassabstractであるため、method()が実装されていないですが、sealedインターフェースを実装するには具体的な実装が必要です。したがって不正です。

選択肢 C:

  • MyClassabstractですが、method()が実装されています。しかし、sealedインターフェースのpermitsに従うためには、具体的なクラスとして宣言する必要があるため不正です。

選択肢 D:

  • MyClasssealedで、MyTypeを実装しています。この場合、permitsに従っているため正しいです。

選択肢 E:

  • MyClassnon-sealedであるため、sealedインターフェースの規則に反しています。したがって不正です。

選択肢 F:

  • MyClassfinalであるため、他のクラスがこのクラスを拡張できず、MyTypeを正しく実装しています。したがって正しいです。

前の問題へ SE17_B-22

次の問題へ SE17_B-24

対象資格:Java SE17 認定資格