Specification Inheritance

The simplest way to reuse a specification that does not quite apply to a new problem is to extend it. Specification inheritance (also known as property inheritance) supports extension by addition of specifications. Subclasses may add new properties (e.g., methods, attributes) and/or add further constraints on existing ones. However, additions may not invalidate any property listed in any superclass. Beyond its technical uses, the emphasis on specification inheritance in OO development can lead to increased human understandability and conceptual reuse that accompanies any effort to hierarchically categorize entities in a given domain.