Is-a
In knowledge representation, object-oriented programming and design, is-a or is_a or is a (subsumption) 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" (B subsumes D, or D is-subsumed-by 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 the holonym-meronym hierarchy. It may also be contrasted with the instance-of relation: see type-token distinction.
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 and is-a.
[edit] See also
- Has-a
- Subsumption
- Inheritance (computer science)
- Subtype
- Liskov substitution principle (in object-oriented programming)
- Hyponym
[edit] 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
- Jean-Luc Hainaut, Jean-Marc Hick, Vincent Englebert, Jean Henrard, Didier Roland: Understanding Implementations of IS-A Relations. ER 1996: 42-57
| This computer programming-related article is a stub. You can help Wikipedia by expanding it. |
| This computer science article is a stub. You can help Wikipedia by expanding it. |