• ベストアンサー

finalメソッドの使いどき

メソッドのオーバーライドを禁止するべき時って、具体的にどのような時ですか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#243182
noname#243182
回答No.1

HTML_QuickForm2_Renderer クラスのソースが、具体例として参考になると思います。 デフォルト、配列のレンダラはこのクラスを継承していますが、この抽象クラスにあるファクトリメソッドからインスタンスを生成することが出来るようになっています。このルールを壊さないようにするため、オーバーライドを禁止しているのではないでしょうか。 また、コメントからはメソッドプラグインの仕組みがあることもわかります。これも動作が変更にならないよう、オーバーライドは禁止されているようです。 オープンソースのフレームワークや CMS など、素晴らしいソースが沢山ありますので、ダウロードしたファイルを final キーワードで検索してみてください。

参考URL:
http://pear.php.net/package/HTML_QuickForm2/docs/latest/HTML_QuickForm2/HTML_QuickForm2_Renderer.html
okonekat
質問者

お礼

ありがとうございます。 ルールを壊さないようにするときとかに使うのですか。 それと最近リスコフの置換原則を知ってさらに理解できました。

関連するQ&A

専門家に質問してみよう