クラスは抽象的なモノであり、
インスタンスを生成することで具体的なモノとするということを以前の記事に綴りました。
以前の記事ではCarクラスという抽象的なモノから、インスタンスを生成することでインサイトという具体的な車にする例を上げています。
しかし車全体を指すCarクラスをもう少し掘り下げることができるのではないかと疑問に思うことはないでしょうか。
例えば、車と言っても「普通自動車」「軽自動車」と分けることができますし、「普通自動車」からは「ミニバン」「セダン」とさらに掘り下げることができます。
車という概念は普通自動車でも軽自動車でも同じ特徴を持つ部分もあれば、異なる特徴を持つ部分もあります。
だったら、同じ特徴の部分を一つのクラスにまとめて、そのクラスの特徴を引き継ぎつつ、普通自動車、軽自動車と異なる特徴の部分を、それぞれ別のクラスとして定義するのが理にかなっています。
この関係を
上位クラス・下位クラスの関係と言います。
そして、大きな枠である上位クラスのフィールドやメソッドを下位クラスが引き継ぐことを
継承と言います。
次回の記事では、継承を扱ったサンプルコードにそって詳しく見ていきます。