Is-a

Is-a

In knowledge representation and object-oriented programming and design, is-a is a relationship where one class "D" is a subclass of another class "B" (and so "B" is a superclass of "D").

In other words "D" "is a" "B" usually means that concept "D" is a specialization of concept "B", and concept "B" is a generalization of concept "D".

For instance, a "fruit" is a generalization of "apple", "orange", "mango" and many others. One can say that an "apple" "is a" fruit.

In object-oriented programming the "is-a" relationship arises in the context of inheritance concept. One can say that "apple" may "inherit" all the properties common to all fruits, such as being a fleshy container for the seed of a plant.

The "is-a" relationship is contrasted with the "has-a" relationship which constitutes a different kind of hierarchy.

When designing a model (e.g., a computer program) of the real-world relationship between an object and its subordinate a common error is confusing the relations "has-a" or "is-a".

ee also

* Has-a
* Subsumption
* Inheritance (computer science)
* Subtype
* Liskov substitution principle (in object-oriented programming)
* Hyponym

References

* Ronald J. Brachman; What IS-A is and isn't. An Analysis of Taxonomic Links in Semantic Networks; IEEE Computer, 16 (10); October 1983 [http://dblp.uni-trier.de/rec/bibtex/journals/computer/Brachman83]
* Jean-Luc Hainaut, Jean-Marc Hick, Vincent Englebert, Jean Henrard, Didier Roland: Understanding Implementations of IS-A Relations. ER 1996: 42-57 [http://www.informatik.uni-trier.de/~ley/db/conf/er/HainautHEHR96.html]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”