継承は非推奨

プログラムを書く時、同じようなコードを書くのは非効率。
なので、共通的な部分はまとめてしまって、付け足し方式で機能を拡張していくというような、
効率性を実現できるのが継承。

共通部分をまとめて継承してしまえば、あとは差分のコードを書くだけで済む。
このような手法を差分プログラミングという。

Javaを書いてたら継承は当たり前のように見るし、普通に使われているので、
主流の形だと思っていたが、どうやらそうでもないらしい。

public class hoge{
  //何かしらのコード
}

例えば上記のような、hogeクラスがあった場合、
それ単体でみると、このhogeクラスをどのクラスが継承しているのかは
ここだけでは判断できない。

もしこのhogeクラスに変更を加えたいと思った場合、hogeクラスを継承しているクラスが
たくさんあったら、影響範囲は多岐に渡り、改修は複雑になりうる。

継承の本質は、

交換可能なパーツを作成するために共通点を「規格」としてまとめ上げられるインターフェイス

(誰かのqiitaの記事から引用してきた)

単なる機能の受け継ぎではないとのこと。


なので、継承を単なる機能の受け継ぎとして使うのではなく、
共通規格としてまとめあげたインターフェース、そしてそのインターフェースに対してプログラムするポリモーフィズム
を実現するために使うべき。(抽象クラスとかの話になってくると思う)


まだふわっとしか理解してないので、
次はこのへんを具体的にコードに落とし込んで理解を深めていこうと思う。