「共通化 → 継承」という考えは間違っている、と断言する。こんなものはオブジェクト指向でも何でもない。仮想関数を持たないスーパークラスは要注意だ。 これはまさしくその通りで,「共通化 → 継承」のような説明がいまだに堂々とまかり通ってるのには,どうしたもんだろうと思う。それなりに人気のある書籍ですら,そんなこと書いてることがある。 思うのだけれども,「共通化 → 継承」といった発想が産まれる原因は,「差分プログラミング」の実装手段として継承を位置付けてるからなのだと思う。もちろん,差分プログラミングという概念自体,発想としてアリなのは言うまでもありません。同じ処理をあちこちに書かないことは,プログラマの美徳にすらなっている。しかし,それはあくまでも発想であって,具体的な実装手段を伴うものではありません。この点,そこに(実装)継承という実装手段をあてがったバカタレは,ほんとに罪深いと思う。委