非virtualメソッド
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/24 15:35 UTC 版)
「Javaに対する批判」の記事における「非virtualメソッド」の解説
Javaはメソッドを非virtualにする手段を提供しない(オーバーライドを禁止するためにfinal修飾子を使用することで封印することはできる)。これは派生クラスに、同じ名前の関係の無いメソッドを定義させる方法がないことを意味する。これは基底クラスが別の人間によって設計されるときに問題となることがあり、また、新しいバージョンが、派生クラスで同じ名前のメソッドがすでに存在するときに、同じ名前とシグネチャのメソッドを導入することで問題となることがある。これは、どちらのクラスの設計者の意図にも反して、派生クラスのメソッドが基底クラスのメソッドを暗黙のうちにオーバーライドするであろうことを意味する。これらのバージョン問題にある程度適合するためにJava 5.0は@Overrideアノテーションを導入しているが、後方互換性を保つには、それをデフォルトでは強制できない。
※この「非virtualメソッド」の解説は、「Javaに対する批判」の解説の一部です。
「非virtualメソッド」を含む「Javaに対する批判」の記事については、「Javaに対する批判」の概要を参照ください。
- 非virtualメソッドのページへのリンク