継承は非推奨
プログラムを書く時、同じようなコードを書くのは非効率。
なので、共通的な部分はまとめてしまって、付け足し方式で機能を拡張していくというような、
効率性を実現できるのが継承。
共通部分をまとめて継承してしまえば、あとは差分のコードを書くだけで済む。
このような手法を差分プログラミングという。
Javaを書いてたら継承は当たり前のように見るし、普通に使われているので、
主流の形だと思っていたが、どうやらそうでもないらしい。
public class hoge{ //何かしらのコード }
例えば上記のような、hogeクラスがあった場合、
それ単体でみると、このhogeクラスをどのクラスが継承しているのかは
ここだけでは判断できない。
もしこのhogeクラスに変更を加えたいと思った場合、hogeクラスを継承しているクラスが
たくさんあったら、影響範囲は多岐に渡り、改修は複雑になりうる。
継承の本質は、
交換可能なパーツを作成するために共通点を「規格」としてまとめ上げられるインターフェイス。
(誰かのqiitaの記事から引用してきた)
単なる機能の受け継ぎではないとのこと。
なので、継承を単なる機能の受け継ぎとして使うのではなく、
共通規格としてまとめあげたインターフェース、そしてそのインターフェースに対してプログラムするポリモーフィズム
を実現するために使うべき。(抽象クラスとかの話になってくると思う)
まだふわっとしか理解してないので、
次はこのへんを具体的にコードに落とし込んで理解を深めていこうと思う。