LU10b - Generalisierung / Spezialisierung

Begriffe

Generalisierung ist eines der Kernkonzepte der objektorientierten Programmierung. Die objektorientierte Softwareentwicklung nutzt generalisierte Klassen und Objekte um gemeinsame Eigenschaften (Attribute) und Funktionen (Methoden) in logischen Einheiten zu bündeln.

Aus Sicht einer Unterklasse oder auch abgeleiteten Klasse sprechen wir dann von Spezialisierung, weil sie gewisse Fähigekiten zusätzlich oder in spezifischer Art ausführen kann.

Abb: Generalisierung / Spezialisierung am Beispiel von Transportmitteln.

Die Vererbung wird auch gerne als IS-A-Beziehung (ist ein) bezeichnet. Nur wenn man diese Aussage anwenden kann, handelt es sich um eine Vererbung im engen Sinn des Wortes.

An Hand einiger Beispiel soll die IS-A-Beziehung verdeutlicht werden.

Beispiele

Korrekte is-a Beziehungen:

ABER


René Probst, bearbeitet durch Marcel Suter