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.