Is-a

知識表現、オブジェクト指向プログラミング、オブジェクト指向設計では、is-aとは、あるクラスBはもう一つのクラスAのサブクラスである(また、AはBのスーパークラスである)という関係である。

言い換えれば、"BはAである"は通常、概念Bは概念Aの特化であり、概念Aは概念Bの汎化であることを意味する。例として、「フルーツ」は「リンゴ」、「オレンジ」、「マンゴー」などの汎化である。リンゴはフルーツである(is-a) (Apple is a fruit.)と言える。

オブジェクト指向プログラミングではis-a関係は継承という概念の中で使われる。たとえばリンゴは、「果肉に種が入った植物」に属するというような、フルーツすべてに共通するプロパティをすべて継承するといって差し支えない。

is-a関係とは、異なる種類の階層の性質をもつ関係にhas-aがある。
オブジェクトと従属するオブジェクトの論理関係がis-aか、それともhas-aなのか、いつもはっきりと決定できるものではない。この曖昧さが、is-aのようなメタ言語的な用語を生み出した。

 関連項目 
 has-a

 集約、コンポジション
 包含
 継承
 派生型
 リスコフの置換原則 (オブジェクト指向プログラミング)
 ソフトウェア工学

 参考文献 
 Ronald J. Brachman; What IS-A is and isn't. An Analysis of Taxonomic Links in Semantic Networks; IEEE Computer, 16 (10); October 1983 
 Jean-Luc Hainaut, Jean-Marc Hick, Vincent Englebert, Jean Henrard, Didier Roland: Understanding Implementations of IS-A Relations. ER 1996: 42-57 

Category:オブジェクト指向
Category:知識表現
Category:抽象