Die Vererbung dient in der objektorientierten Programmierung, kurz OOP, unter anderem dazu, eine neue Klasse als Erweiterung bereits existierender Klassen zu entwickeln. Die bestehende Klasse ist als Basis- oder Superklasse bekannt. Die neue, erbende Klasse nennt sich Subklasse.
Vererbung ist ein elementares Konzept der objektorientierten Programmierung.
In der objektorientierten Programmierung und Anwendungsentwicklung ist die Vererbung als Vorgehensweise zu begreifen, in der eine Klasse die Mitglieder einer anderen Klasse übernimmt. Zu den übernommenen Eigenschaften gehören Attribute, Methoden sowie Ereignisse.
Bei der Vererbung wird eine neue Klasse oder Subklasse als Erweiterung einer oder mehrerer bereits bestehender Klassen (Superklassen) entwickelt. Das Ziel der Vererbung besteht also in der Wiederverwendung der übergeordneten Klassen-Eigenschaften.
Mit der Vorgehensweise der Vererbung ist es möglich, die mehreren Klassen gemeinsamen Attribute, Methoden und Ereignisse an zentraler Stelle festzulegen und zu definieren. Bereits definierte Eigenschaften einer Klasse sollen nicht erneut definiert werden müssen. Dies gilt insbesondere, wenn sich Klassen bereits sehr ähnlich sind.
Funktionsweise und Vererbungsstruktur
Beteiligt sind an der Vererbung grundsätzlich zwei Klassen, für die mehrere Bezeichnungen existieren. Die vererbende Klasse ist auch als Oberklasse, Superklasse oder Elternklasse bekannt. Die erbende Klasse kennt die Bezeichnungen abgeleitete Klasse, Unterklasse, Subklasse oder Kinderklasse. In der Vererbungsstruktur können Subklassen ihrerseits Oberklassen für andere nachgelagerte abgeleitete Klassen sein.
Die sich ergebende Vererbungshierarchie wird auch Klassenhierarchie genannt. Sie lässt sich visuell in einer baumartigen Struktur darstellen, die als Vererbungs- oder Klassendiagramm bekannt ist. Ein Spezialfall der Vererbung ist die Mehrfachvererbung. In einem solchen Fall besitzen Klassen mehrere Elternklassen.
Typischerweise findet Vererbung in der Art und Weise Einsatz, dass die gebildeten Unterklassen spezifischere Fähigkeiten haben als ihre jeweiligen Elternklassen. Das Ableiten einer Klasse ist daher ein Prozess, der auch als Spezialisierung bekannt ist. Die übergeordnete Klasse beinhaltet Eigenschaften und Fähigkeiten, die von sämtlichen Unterklassen genutzt werden können. Darauf aufbauend sind die Unterklassen auf weitere Fähigkeiten spezialisiert.
Jede abgeleitete Klasse kann Superklasse weiterer Unterklassen sein, die ihrerseits eigene Spezialisierungen aufweisen. Manche Programmiersprachen sehen in dieser Vererbungsstruktur Ausnahmen vor, die eine weitere Ableitung verhindern. In diesem Fall ist vom Ende der Klassenhierarchie die Rede.
Unterschiede und Abgrenzung
Grundsätzlich ist zwischen der Einfach- und der Mehrfachvererbung zu unterscheiden. Die Einfachvererbung sieht vor, dass zu jeder Klasse genau eine Superklasse gehören. Im Falle der Mehrfachvererbung sind mehrere Superklassen pro Unterklasse möglich.
Die Mehrfachvererbung ist bei moderneren Programmiersprachen wie etwa Java oder C# (C-Sharp) meist nicht vorgesehen. Dies hängt damit zusammen, dass der Nutzen der Mehrfachvererbung in Anbetracht der damit verbundenen Probleme ein meist geringer ist. Eine Programmiersprache, die Unterstützung für die Mehrfachvererbung bietet, ist C++.
Wiederholte Vererbung ist der Vorgang des mehrfachen Erbens gleicher Merkmale auf Basis einer mehrfachen Elternklasse. Die Eigenschaften einer mehrfachen Superklasse können in Abhängigkeit der Vererbungs-Semantik in den abgeleiteten Klassen ebenso mehrfach vorhanden sein. Die daraus resultierende ebenso mehrfache Nutzung der Namen der Eigenschaften der Superklassen und Unterklassen kann bei der wiederholten Vererbung zu Konflikten führen.
Anwendungsfälle der Vererbung in der Entwicklung
In der Anwendungsentwicklung wird durch Vererbung eine Modellierung möglich, die der menschlichen Vorstellung möglichst nahe kommen soll. Die Vererbungsstruktur kennt verschiedenartige Anwendungsszenarien.
Ein häufig zum Einsatz kommender Vererbungsfall ist die Subtyp-Vererbung. Die abgeleitete Klasse bildet dabei einen Subtypen der Superklasse. Es handelt sich um einen abstrakten Datentyp, bei dem ein Objekt des Subtyps grundsätzlich an jeder Stelle angewandt werden kann, wo ein Objekt des Basistyps zu erwarten ist. Hierbei ist die Menge der Ausprägungen des abgeleiteten Subtyps eine Teilmenge der Menge der Ausprägungen des Basistyps.
Ein weiterer Fall der Vererbung ist die Unterstützung allgemeiner Basisfähigkeiten. Rein formal handelt es sich um einen Spezialfall der Subtyp-Vererbung. Hierbei geht es um Etablierung der Unterstützung grundlegender Funktionalitäten der Klassenbibliothek oder Anwendungsarchitektur. Funktionalitäten wie Vergleichbarkeit (Bezeichner "Comparable") oder Serialisierbarkeit (Bezeichner "Serializable") werden deklariert durch eine abstrakte Klasse oder Schnittstelle. Die Implementierung der Anforderungen der Schnittstelle erfolgt in der abgeleiteten Klasse.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Vererbungsstrukturen können sich auch auf Standard-Implementierungen beziehen. Hierbei geht es um die Implementierung allgemeiner Funktionalitäten in zentralen Klassen. Diese Funktionalitäten sind für mehrere Typen verwendbar und dient der pragmatischen Wiederverwendung allgemein gehaltener Programmbestandteile.
Ein weiterer Anwendungsfall ist die Vererbung zur Funktionserweiterung. Hierbei werden in der Subklasse neue Funktionalitäten hinzugefügt, die die Basisfunktionen der Superklasse ergänzen. Die Erweiterung beinhaltet zusätzliche Attribute. Bei dieser Vererbungsvariante geht es ebenso um Anpassungen durch das Überschreiben von Methoden. Auf diese Weise lassen sich Funktionalitäten hinzufügen oder ergänzen, die in der Superklasse keine Rolle spielen.
Diese Vererbungsstruktur berücksichtigt ebenso den Fall, dass die Funktionalität einer bestimmten Klasse nur teilweise in der abgeleiteten Klasse implementiert wird. In diesem Falle handelt es sich bei Superklasse und abgeleiteter Klasse um abstrakte Klassen. Zusätzliche Implementationen sind in diesem Fall der Gegenstand weiterer Spezialisierungen.