継承とは、あるクラスを基盤として別のクラスを実装することを言います。
ここではシューティングゲームを例にして継承について考えてみます。
敵機の情報を管理する「敵機クラス」があったとします。
「敵機クラス」には敵機が存在する座標位置や、発射弾の座標位置、ライフポイント、動作パターン、搭載している武器などの情報を持っていたとします。
もし、シューティングゲーム上に登場する敵機が全て同じライフポイントであったり、直進しかしてこない動作パターンだったりするとおもしろくありません。
例えば5発、弾を当てないと倒せない敵機であったり、ジグザグに動く敵機などさまざまな種類の敵機がいた方がおもしろいはずです。
しかし、さまざまな種類の敵機ごとにクラスを作るのはちょっと効率が悪いです。
敵機が存在する座標位置や発射弾の座標位置などの情報は、敵機の種類ごとに違ってくるものではなく、同じ役目を果たすメソッドを敵機の種類ごとに作るのは明らかに冗長です。
この
冗長を回避する手段が
継承なのです。
まず、敵機の種類ごとに関係なく、同じ役目を果たすメソッドなどを基底クラスとして定義します。
そしてその基底クラスを基盤にして敵機の種類ごとに新しいクラスを実装していくのです。
このとき、基盤となるクラスを
スーパークラスと呼び、それを継承する新しいクラスを
サブクラス(継承クラス)と呼びます。
オブジェクト指向の考え方でのプログラミング目的は
既存のコードを流用することによって開発の効率を高めることにあります。
そういった意味でオブジェクト指向を正しく使いこなすためには継承についての理解は必要不可欠です。
逆に継承の概念がない言語(VB6等)はオブジェクト指向とは呼べないと言えます。