問題
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 認定資格