
問題
final クラスや final メソッドについて正しい説明はどれですか。(2つ選択)
選択肢
A)final クラスはシールクラスのサブクラスとして宣言できる
B)シールクラスは final メソッドを含むことができない
C)abstract クラスは final クラスのサブクラスとして宣言できる
D)final クラスはシールクラスのサブクラスでなければならない
E)シールクラスは final クラスとして宣言できる
F)final クラスは abstract クラスのサブクラスでなければならない
G)final クラスは abstract メソッドを含むことができない
H)abstract クラスは final メソッドを含むことができない
解答
A)final クラスはシールクラスのサブクラスとして宣言できる
B)シールクラスは final メソッドを含むことができない
C)abstract クラスは final クラスのサブクラスとして宣言できる
D)final クラスはシールクラスのサブクラスでなければならない
E)シールクラスは final クラスとして宣言できる
F)final クラスは abstract クラスのサブクラスでなければならない
G)final クラスは abstract メソッドを含むことができない
H)abstract クラスは final メソッドを含むことができない
解説
A)final クラスはシールクラスのサブクラスとして宣言できる
- 理由:
finalクラスはそれ以上のサブクラスを持てないため、シールクラスのサブクラスとして宣言することはできません。
B)シールクラスは final メソッドを含むことができない
- 理由: シールクラスは
finalメソッドを含むことができます。finalメソッドはサブクラスでオーバーライドできないことを意味するので、シールクラスでも問題ありません。
C)abstract クラスは final クラスのサブクラスとして宣言できる
- 理由:
finalクラスはサブクラス化できないため、abstractクラスはfinalクラスのサブクラスとして宣言できません。
D)final クラスはシールクラスのサブクラスでなければならない
- 理由:
finalクラスはその特性上、他のクラスのサブクラスである必要はありません。むしろ、サブクラスを持つことができないため、これは誤りです。
F)final クラスは abstract クラスのサブクラスでなければならない
- 理由:
finalクラスはabstractクラスのサブクラスである必要はなく、通常はその逆です。finalクラスは具体的な実装を持ち、インスタンス化されることを目的としています。
H)abstract クラスは final メソッドを含むことができない
- 理由:
abstractクラスはfinalメソッドを含むことができます。これは、そのメソッドがサブクラスでオーバーライドされないことを保証します。abstractメソッドが必要な場合もありますが、finalメソッドを持つことに矛盾はありません。
対象資格:Java SE17 認定資格
