Vererbung

Ein besonderer Vorteil der Objektorientierung liegt in der Idee der Vererbung. Eine Oberklasse gibt bei der Vererbung alle Attribute und Methoden an die Unterklasse weiter (Ausnahme: Attribute und Methoden mit der Sichtbarkeit "private" werden nicht vererbt). Dieser Vorgang kann beliebig wiederholt werden.

Die Möglichkeit, von mehreren Klassen zu erben (Mehrfachvererbung), besteht, wird aber im Rahmen dieses Kurses nicht weiter berücksichtigt.

 

Der besondere Vorteil der Vererbung liegt in der Möglichkeit der Abstrahierung:

  1. Modularisierung: Eine Problemstellung kann beliebig stark untergliedert werden.
  2. Wiederverwendung: Teillösungen in Form von bereits modellierten Klassen können in anderen Klassen wiederverwendet werden.

 

In der UML werden Vererbung als gerichtete Pfeile dargestellt. Ein Vererbungspfeil zeigt immer von der Unterklasse zu Oberklasse - vergleichbar mit den Blättern eines Baumes: Ein Blatt hängt immer an einem Ast. Vererbte Attribute und Methoden werden in einem Klassendiagramm nicht wiederholt!

 

Beispiel:

No. 6 ist ein Objekt der Klasse "RoboterBaureihe6". Neben der Baureihe 6 existiert noch eine Baureihe mit der Nummer 7.

  • Beide Baureihen unterscheiden sich nur in der Art der angeliederten Komponenten. So ist die Baureihe 7 auf den stationären Betrieb ausgelegt und besitzt keinen Antrieb.
  • Beide Baureihen sind dennoch Roboter.
  • Jeder Roboter verfügt über einen Namen und kann ein- sowie ausgeschaltet werden.

Vererbung

Im obigen UML-Beispiel besitzen beide Baureihen einen Namen. Da dieser aber in der Klasse "Roboter" deklariert und an beide Klassen weitervererbt wird, wird das Attribut "name" nicht wiederholt. Gleiches gilt auch für die Methoden "einschalten" und "ausschalten".

Hingegen ist der Antrieb nur in der Baureihe 6 zu finden, dass nur zwischen "Antrieb" und "RoboterBaureihe6" eine Komposition besteht.

 

Überschreiben

In manchen Anwendungsfällen unterscheiden sich die Signatur von Ober- und Unterklasse nicht. Die interne Funktionsweise der Methode ist jedoch verschieden. Zu diesem Zweck können vererbte Methoden überschrieben werden. In diesem Fall wird die Signatur der Methode in der Unterklasse wiederholt.

 

Beispiel:

Normalerweise wird ein Roboter ausgeschaltet, indem die Motorleistung heruntergeregelt und die bewegten Teile gebremst werden. In der Baureihe 7 wird der Roboter aber abweichend durch Trennung des Stromkreislaufes angehalten. Wenngleich die Funktionsweise verschieden ist, bleibt das Ergebnis das gleiche: beide Roboter halten an.

Hinweis: In der UML ist die eigentliche Funktionsweise nicht ersichtlich, lediglich das Überschreiben der Methode.

Überschreiben