Inheritance specification
User-defined types may inherit from other user-defined types or from template types, but not from an elementary data types.
Inheritance can be defined for transient and persistent data types. Since in ODABA inheritance is considered as relationship, several additional properties can be defined in case of persistent inheritance definitions (base collection, inverse reference etc). Details for the relation options ( rel_opt ) are described in topic "Relationship definition".
Inheritance can be considered as type property (like attributes or relationships) or as type extension. ODABA considered inheritance as type property, but for compatibility reasons we follow the ODMG suggestions and define inheritance as type extension.
Inheritance and "extends specification" are handled the same way in OSI, since OSI does not make differences between persistent class extensions or interface inheritance.