Journal of object-oriented programming vol:12 issue:3 pages:20-28
The goals of extension inheritance are not yet entirely met by current object-oriented languages. Whereas the ultimate goal is to introduce an additional set of operations applicable to all instances of the already existing class, it is only possible to introduce a new class to which both the original as well as the new set of operations can be applied. No current object-oriented language is really able to extend a given class in the full sense of the word. As a result, extension inheritance usually yields complex class structure. We propose a remedy for this subtle problem by introducing new language constructs and mechanisms for a fine-grained extension inheritance. The proposal is general but uses Java syntax for the sake of illustrating the ideas.