継承
  1. 地位や財産などを受け継ぐこと。承継。
  2. オブジェクト指向を構成する概念。本稿で解説する。

継承(けいしょう、inheritance:インヘリタンス)とはオブジェクト指向を構成する概念の一つである。あるオブジェクトが他のオブジェクトの特性を引き継ぐ場合、両者の間に「継承関係」があると言われる。主にクラスベースオブジェクト指向言語で、既存クラスの機能、構造を共有する新たなクラスを派生することができ(サブクラス化)、そのようなクラスは「親クラス(スーパークラス)を継承した」という。具体的には変数定義や操作(メソッド)などが引き継がれる。またJavaインタフェース継承のように機能セットの仕様のみを引き継ぐ場合もある。一般的に、BがAを継承する場合、B is a A. (BはAの一種である)という意味的な関係(Is-a関係)が成り立つ。従って、同じふるまいを持つからと言って、意味的に無関係なクラス間に継承関係を持たせるのは適切でない場合が多い。プロトタイプベースのオブジェクト指向言語(SelfNewtonScript等)のように「クラス」という概念を持たない場合でも、クローン元となるオブジェクトを指して「継承」と呼ぶ。継承と類似の概念に「委譲」があるが、継承では一度定まった継承関係は通常変更されないのに対して、委譲対象は必要に応じて変更されうるものである。Is-a関係を持つ継承とは階層が異なる概念として集約 (aggregation) とコンポジション集約 (composition) があるが、これはクラス間の関係がHas-aである包含関係であり、クラス間の関係は継承よりもである。

1 多重継承と仮想継承
2 限定多重継承
3 UMLにおける継承
4 関連項目