Title :
When to inherit and when not to
Author_Institution :
Inst. of Inf. Sci., Acad. Sinica, Taipei, Taiwan
Abstract :
In object-oriented software development, it is generally accepted that inheritance should be used just to model a generalization/specialization relationship (i.e. an IS-A relation). This analysis/design guideline is too permissive. Some researchers thus advocate that a subclass should inherit the full a behavior of its superclass. Behavior inheritance, however, is far too restricted. In this paper, we establish a formal model that can clearly differentiate IS-A from behavior inheritance. Under this model, IS-A and behavior inheritance can be decomposed into more fundamental concepts: subsets and abstraction/concretization. Also, we are able to develop a set of refined guidelines regarding the use of inheritance
Keywords :
inheritance; object-oriented methods; object-oriented programming; IS-A relation; abstraction; analysis/design guideline; behavior inheritance; concretization; formal model; generalization/specialization relationship; object-oriented software development; subclasses; subsets; superclasses; Concrete; Guidelines; Marine vehicles; Mathematics; Object oriented modeling; Tree graphs;
Conference_Titel :
Software Engineering Conference, 1994. Proceedings., 1994 First Asia-Pacific
Conference_Location :
Tokyo
Print_ISBN :
0-8186-6960-8
DOI :
10.1109/APSEC.1994.465242