Vererbung

Vererbung ist eines der grundlegenden Prinzipien der objektorientierten Programmierung. Dort können von bestehenden Klassen ausgehend neue Klassen erstellt werden, die zunächst die gleichen Eigenschaften und Methoden besitzen wie die Ausgangsklasse. Die neue Klasse wird als abgeleitete Klasse oder Unterklasse bezeichnet, die Ausgangsklasse als Super- bzw. Oberklasse. Die abgeleitete Klasse kann die von ihrer Superklasse geerbten Eigenschaften und Methoden überschreiben oder durch zusätzliche ergänzen.


Vererbung wird üblicherweise in der Form eingesetzt, dass Unterklassen speziellere Fähigkeiten haben als Ihre Ahnen. Der Prozess des Ableitens wird deshalb auch als Spezialisierung bezeichnet. Die Superklasse implementiert also allgemeine Fähigkeiten, die von allen Unterklassen genutzt werden können und sollen, während sich die Unterklassen darauf aufbauend auf andere Fähigkeiten spezialisieren. Dabei kann fast jede Unterklasse wiederum Superklasse für eine noch weitergehende Spezialisierung sein. Ausnahmen gibt es in manchen Programmiersprachen, in denen eine Klasse als "Ende der Klassenhierarchie" deklariert werden kann, um weitere Ableitung zu verhindern.

Vererbung mit Unter- und Oberklassen

Vererbung mit Unter- und Oberklassen

Es wird zwischen Einfach- und Mehrfachvererbung unterschieden. Bei der Einfachvererbung hat jede Klasse maximal eine Superklasse, bei der Mehrfachvererbung können es mehrere sein. Mehrfachvererbung wird beispielsweise von C++ unterstützt, während modernere Sprachen wie C-Sharp (C#) und Java sie auf Grund des im Vergleich zu den dadurch entstehenden Problemen geringen Nutzens nicht zulassen. Viele Praxisprobleme, für die Mehrfachvererbung wünschenswert ist, lassen sich durch das Entwurfsmuster (Design Pattern) " Schnittstelle" sogar noch eleganter und allgemeiner lösen.

Unter wiederholter Vererbung versteht man speziell ein mehrfaches Erben der gleichen Merkmale aufgrund einer mehrfachen Oberklasse. Die Merkmale einer mehrfachen Oberklasse können abhängig von der Semantik der Vererbung in abgeleiteten Klassen, den Unterklassen, jeweils mehrfach vorhanden sein. Durch wiederholte Vererbung können Konflikte entstehen, die auf der mehrfachen Verwendung der Namen von Merkmalen beruhen.

Informationen zum Artikel
Deutsch: Vererbung
Englisch: inheritance
Veröffentlicht: 08.12.2009
Wörter: 300
Tags: #Design
Links: Ausnahme, C++, C-Sharp, Entwurfsmuster, Java