オブジェクト指向:継承
オブジェクト指向プログラミングにおいて、既に定義されているクラスをもとに、拡張や変更を加えた新しいクラスを定義すること。 元になるクラスを「スーパークラス」(super class)、あるいは「基底クラス」「基本クラス」(base class)などと呼び、新たに定義されたクラスを「サブクラス」(subclass)、あるいは「派生クラス」(derived class)と呼ぶ。
スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。
複数のスーパークラスから新しいクラスを定義することを多重継承という。
継承を用いると、クラス中の異なる概念を分離させることができる。
継承の利益
サブクラスは、スーパークラスによって提供される共通の要素を基本として特殊化された振る舞いをする。
継承を使用して、プログラマは何度もスーパークラスのコードを再利用することができる。
プログラマは、「一般的な」振る舞い(抽象クラス と呼ばれる)を定義するスーパークラスを実装することができる。 スーパークラスの本質は定義されて、部分的に実装されているかも知れないが、クラスの多くが未定義・未実装のままである。
他のプログラマがサブクラスに特殊化する詳細を埋め込むのである。
汎化としての継承
汎化は、複数のクラスの共通概念を抽出して、独立したクラスとして実装すること。
特化としての継承
特化は、あるクラスを基にして、それを特殊化した派生クラスを作る事。