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

JavaSilverLogo
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 クラスは、デフォルトのアクセス修飾子で宣言されています。これにより、同じパッケージ内のクラスからはアクセスできますが、他のパッケージからはアクセスできません。

各選択肢の評価

  1. A) private class Main extends Base { }
    • private 修飾子を持つクラスは、そのクラスが定義されているコンテキスト(例えば、内部クラスとしての位置)からしかアクセスできません。トップレベルのクラスとしては不適切です。
  2. B) sealed class Main extends Base { }
    • sealed 修飾子は、このクラスを継承できるクラスを制限しますが、Base クラス自体が sealed でないため、この宣言は不適切です。
  3. C) abstract class Main extends Base { }
    • abstract 修飾子を持つクラスは、他のクラスによって継承されることができます。インスタンス化できませんが、サブクラスとしては正しい選択肢です。
  4. D) public class Main extends Base { }
    • public アクセス修飾子を持つこのクラスは、他のクラスからアクセス可能であり、一般的なサブクラスの定義として正しいです。
  5. E) protected class Main extends Base { }
    • protected 修飾子は、同じパッケージ内のクラスとサブクラスからアクセス可能ですが、トップレベルのクラスとしては不適切です。
  6. F) final class Main extends Base { }
    • final 修飾子を持つクラスは、他のクラスに継承されることはありませんが、サブクラスとして定義するのには問題ありません。
  7. G) static class Main extends Base { }
    • static 修飾子は、トップレベルのクラスには適用できません。この選択肢は不適切です。
  8. H) non-sealed class Main extends Base { }
    • non-sealed 修飾子は、sealed クラスのサブクラスでのみ使用するものであり、Basesealed でないため不適切です。

正しい選択肢

  • C: abstract class Main extends Base { } — サブクラスとして正しい。
  • D: public class Main extends Base { } — サブクラスとして正しい。
  • F: final class Main extends Base { } — サブクラスとして正しい。

これらの理由から、正しい選択肢は C、D、F です。

前の問題へ SE17_B-59

対象資格:Java SE17 認定資格