Wir betrachten eine Typhierarchie aus dem Universitätsbereich. Angestellte werden spezialisiert zu Professoren und Assistenten:
class Angestellte (extent AlleAngestellte) {
attribute long PersNr;
attribute string Name;
attribute date GebDatum;
short Alter();
long Gehalt();
};
class Assistenten extends Angestellte (extent AlleAssistenten) {
attribute string Fachgebiet;
};
class Professoren extends Angestellte (extent AlleProfessoren) {
attribute string Rang;
relationship Raeume residiertIn inverse Raeume::beherbergt;
relationship set(Vorlesungen) liest inverse Vorlesungen::gelesenVon;
relationship set(Pruefungen) hatgeprueft inverse Pruefungen::Pruefer;
};
Abbildung 16.10 zeigt die drei Objekttypen Angestellte, Professoren und Assistenten, wobei die geerbten Eigenschaften in den gepunkteten Ovalen angegeben ist.
Abbildung 16.11 zeigt schematisch die aus der Ober-/Untertyp-Beziehung resultierende Inklusion der Extensionen AlleProfessoren und AlleAssistenten in der Extension AlleAngestellte.