Abstract Classes

A class is made abstract by setting itsAbstract option to yes in the meta-model. In this case the generated Java class hierarchy for this abstract class will not include a factory class. This means that the class cannot be instantiated and the only purpose of having the class is to enable it to be subclassed.

All non-abstract subclasses of the abstract classes will have the factory component and are instantiated in the normal way.

The developer must provide the impl Java code for abstract classes (unless the abstract class has no subclasses). From here on the usual rules for abstract classes apply: the impl class can contain implementations for some or all of the methods declared in the class, and any methods for which an implementation has not been provided must be implemented by the subclass(es).