Java言語入門 〜C言語を学んだ君へ〜
[第9回]練習問題 第3問解答
第3問解答
「abstract」と「final」は全く正反対の機能を持つため、
同時に使うと、「矛盾」が生じてしまうから。
第3問解説
「abstract」と「final」についての理解度を確認する問題です。
この2つについて、もう一度説明します。
abstract
抽象クラス・抽象メソッドを作成するために使うキーワードです。
つまり、「継承」・「オーバーライド」を前提に定義したい時に使います。
final
変更不可にするために使うキーワードです。
具体的に「継承」・「オーバーライド」・「書き換え」を禁止したい時に使います。
以上より、abstractとfinalは全く正反対の機能を持ちます。
そのため、同時に使うと、abstractで継承を前提にしているにもかかわらず、
finalで継承を禁止するという、矛盾が生じます。
したがって、この2つは同時には使えません。