First page Back Continue Last page Overview Graphics

Generalisierung bzw. Spezifikation


Notes:

Generalisierung bzw. Spezifikation sind zentrale Konzepte der objektorientierten Programmierung, die in den verschiedenen Sprachen als „Ableitung“ realisiert werden. Was man alerdings beachten sollte ist, dass die beiden Begriffe nur oberflächlich betrachtet dasselbe meinen.
Wir alle wissen, dass wir Objekte einer abgeleiteten Klasse überall dort einsetzen können, wo ein Objekt der Superklasse erwartet wird. Landläufig darf man sagen, dass das Objekt der abgeleiteten Klasse auch ein Objekt der Superklasse ist. Dieser Sachverhalt wird durch die Generalisierung wiedergegeben: Herr Müller, ein Kunde ist eine Person, eine Person ist ein Mensch. Die Aussage, Herr Müller sei ein Mensch ist völlig selbstverständlich und zulässig.
Anders sieht die Sache bei der Spezifikaition aus. Wenn wir etwa Spezies betrachten, so werden diese durch ihre einzelnen Vertreter klassifiziert, ohne dass sie ihre Vertreter umgekehrt generalisieren! „Mensch“ ist zwar eine „Spezies“, aber die Aussage „Herr Müller ist eine Spezies“ ist rundheraus falsch.
Sehen Sie sich beim Modellieren also vor, ob Sie es bei ihren Ableitungshierarchien mit Generalisierung oder mit Spezifikation zu tun haben! In beiden Fällen ist der dicke, dreieckige Pfeil das UML-Element dafür, zumal ja auch die Programmiersprachen nur das Werkzeug der Ableitung kennen.
Jedenfalls aber gilt: die Subklasse erbt sämtliche Attribute und Operationen der Superklasse.