同僚と議論していたのですが、有識者の方にもご意見を伺いたく質問させていただきました。
個人的には「サブクラスにpublicメソッドを定義すること」はNGと考えています。
理由はポリモーフィズムが破壊される(?)からです。
ただし、スーパークラスのpublicメソッドをオーバーライドするためにサブクラスで同名のpublicメソッドを定義するのは問題ないと思いますので、正しくは「サブクラスにてスーパークラスには存在しないpublicメソッドを定義すること」がNGになります。
私自身オブジェクト志向をしっかりと理解している自信はないので、認識の間違いや他にも「こういう時はサブクラスにpublicメソッドを定義したほうがよい」といったケースがございましたらご教授いただけると嬉しいです。
どうぞよろしくお願いします。
追記
みなさまご回答ありがとうございました。
色々なご意見をいただき自信のプログラムの書き方を見直すきっかけにもなりました。
「トンカチをもつとなんでもクギに見える」とはまさにこのことですね。。
ベストアンサー悩ましかったのですが、maisumakunさんにさせていただきました。
回答4件
あなたの回答
tips
プレビュー