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

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

問題

次のクラスのサブクラスの定義として正しいものはどれですか。(3つ選択)

public class Base {
}

選択肢

A) 
private class Main extends Base { }
B) 
sealed class Main extends Base { }
C) 
abstract class Main extends Base { }
D) 
public class Main extends Base { }
E) 
protected class Main extends Base { }
F) 
final class Main extends Base { }
G) 
static class Main extends Base { }
H) 
non-sealed class Main extends Base { }

解答

A) 
private class Main extends Base { }
B) 
sealed class Main extends Base { }
C) 
abstract class Main extends Base { }
D) 
public class Main extends Base { }
E) 
protected class Main extends Base { }
F) 
final class Main extends Base { }
G) 
static class Main extends Base { }
H) 
non-sealed class Main extends Base { }

解説

Base クラスのサブクラスを正しく定義するためには、アクセス修飾子やクラスの特性を考慮する必要があります。選択肢を見てみましょう。

各選択肢の評価

A)

private class Main extends Base { }
  • 不正確。 ルートパッケージ(デフォルトパッケージ)からは private クラスはアクセスできません。

B)

sealed class Main extends Base { }
  • 正しい。 sealed クラスは他のクラスにサブクラスを制限できます。

C)

abstract class Main extends Base { }
  • 正しい。 abstract クラスはサブクラスを持つことができ、Base のサブクラスとして適切です。

D)

public class Main extends Base { }
  • 正しい。 public クラスは他のクラスからアクセスでき、正しいサブクラスです。

E)

protected class Main extends Base { }
  • 不正確。 protected クラスは同じパッケージ内またはサブクラスからしかアクセスできず、トップレベルクラスとしては不適切です。

F)

final class Main extends Base { }
  • 正しい。 final クラスはサブクラスを持つことができず、Base のサブクラスとして適切です。

G)

static class Main extends Base { }
  • 不正確。 トップレベルクラスとしては static 修飾子は使えません。

H)

non-sealed class Main extends Base { }
  • 正しい。 non-sealed クラスは他のクラスがサブクラスを作成できるようにします。

結論

選択肢の中で正しいサブクラスの定義としては B(sealed), C(abstract), D(public), F(final), H(non-sealed) が挙げられますが、B, C, D は特に重要なパターンです。

前の問題へ SE17_B-06

次の問題へ SE17_B-08

対象資格:Java SE17 認定資格