| Liste Artikel | Liste Kategorien | Zufälliger Artikel | Links auf diese Seite | |||
Bei der Vererbung in der Programmierung werden von einer erbenden Klasse alle Merkmale der vererbenden Klasse geerbt.
Die vererbende Klasse bezeichnet man als Basisklasse oder Superklasse, die erbende Klasse als abgeleitete Klasse oder Subklasse.
Von einer Basisklasse können mehrere Subklassen abgeleitet werden. In C++ besteht zusätzlich die Möglichkeit, Klassenelemente durch bestimmte Zugriffsrechte zu schützen. Diese Zugriffsrechte werden meistens mit vererbt, können jedoch beim Vererben geändert werden.
Verwendet wird die Vererbung zum Beispiel, wenn man mehrere Klassen schreiben möchte, die konzeptionell zusammen gehören. Identische Merkmale dieser Klassen werden dann in der gemeinsamen Basisklasse zusammengefasst.
Von Mehrfachvererbung spricht man, wenn eine Klasse mehrere Basisklassen hat, die nicht voneinander erben, aber wiederum von anderen Klassen abstammen können. Die Möglichkeit der Mehrfachvererbung besteht nur in wenigen Programmiersprachen (C++).
Siehe auch: Instanz (Informatik)
|
Ein Fahrzeug besitzt bestimmte Attribute, diese können z.B. Höchstgeschwindigkeit oder maximale Zuladung oder auch Farbe sein. Die Klasse Kraftfahrzeug erbt all diese Attribute, kann aber noch zusätzliche Attribute besitzen, z.B. Leistung oder Drehmoment. Desweiteren kann ein Fahrzeug auch zusätzliche Methoden wie Beschleunige() besitzen, welche die Basisklasse Fahrzeug nicht kennt. Die Klasse Personenkraftwagen kann dann wiederum von Kraftfahrzeug abgeleitet werden und weitere zusätzliche Attribute wie Anzahl der Sitze besitzen. Durch die Ableitung von Kraftfahrzeug erbt der Personenkraftwagen automatisch alle Attribute von Fahrzeug. Ob eine Klasse in einer Vererbungsbeziehung zu einer anderen Klasse steht, lässt sich durch eine einfache Regel feststellen. Sobald die Aussage "die abgeleitete Klasse ist ein(e) Basisklasse" zutrifft, stehen beide Klassen in einer Vererbungbeziehung.
Hat einen bezeichnet also Attribute einer Klasse. |
|

Mehrfachvererbung (englisch: multiple inheritance), bedeutet in der objektorientierten Programmierung die Ableitung einer Klasse von mehr als einer Basisklasse. Ein praktisches Beispiel hierfür ist ein Amphibienfahrzeug, welches sowohl die Attribute von Landfahrzeug als auch die von Wasserfahrzeug erbt. Damit besitzt Amphibienfahrzeug sowohl eine Räderzahl als auch einen Tiefgang.
Nicht alle objektorientierten Programmiersprachen erlauben die Mehrfachvererbung. Programmiersprachen mit Mehrfachvererbung sind z.B. C++, Eiffel und Python. Dagegen unterstützt Smalltalk und Ada Mehrfachvererbung nicht. Als Einwand gegen Mehrfachvererbung wird häufig genannt, dass es das Design unnötig kompliziert und undurchsichtig machen kann.
Java und C# bieten mit so genannten Schnittstellen eine eingeschränkte Form der Mehrfachvererbung. Hierbei kann eine Klasse maximal von einer Basisklasse abgeleitet werden, jedoch kann Sie beliebig viele Schnittstellen erben. Damit verpflichtet sich diese Klasse, die Methoden der Schnittstelle zu erfüllen. Mit einfacher Vererbung und Schnittstellen sind die meisten Anforderungen an ein Software-Design realisierbar, ohne die Nachteile der Mehrfachvererbung in Kauf nehmen zu müssen.
Ada0Y soll auch Mehrfachvererbung unterstützen.


