class継承とは何か?
継承はあるクラスの機能を引き継いで、新しいクラスを作ることです。
例としてタクシーとバスを作成するとして考えてみます。
それぞれのクラスでは「残りの燃料」や「走行距離」といった属性(プロパティ)を持ち、
「走る」や「ガソリンを入れる」などの操作は(メソッド)は共通しています。
具体的に話すと新しく車クラスを作成し、その中に共通する属性や操作を書きます。
そしてタクシーとバスのクラスは車クラスの機能を引き継いで作成されます。
継承元のクラスを「スーパークラス」と言い、継承先のクラスを「サブクラス」と言います。
継承のメリット
継承が用意されていない場合、新しくブレーキの機能を追加したいとなったとき、
乗り物に関する個別のクラスに属性や操作を追加しなければならない!
こうするとコードが長くなってしまい乗り物のクラス全体に機能を追加したり、
修正したりするときに一つ一つを修正しなければならず大変になる。
そこで車のような基盤となるクラスを用意することで新たな乗り物を最小限の手間で作成することができる!
# 継承のデメリット
RubyやJavaでは継承できるクラスは(スーパークラス)は一つまでになっている!
複数のクラスを継承して新しいクラスを作成することはできない。
親クラスの処理内容を変更するとき、継承クラスと使われているメソッドを全て把握しなければ継承先で意図しない処理なってしまうことがあるというデメリットもあります。