C++-Programmierung/ Objektorientierte Programmierung/ Private und geschützte Vererbung

Aus Wikibooks


Einleitung[Bearbeiten]

Bis jetzt haben wir alle Vererbungen mit dem Schlüsselwort public vorgenommen (dies wird „öffentliche Vererbung“ genannt). Nun werden wir lernen, was passiert, wenn statt public private bzw. protected verwendet wird.

Private Vererbung[Bearbeiten]

Verwenden wir private, so bedeutet dies, dass alle geschützten und öffentlichen Membervariablen bzw. Memberfunktion aus der Basisklasse privat werden, von außen also nicht sichtbar sind.

Wenn kein Schlüsselwort zur Ableitung angegeben wird, handelt es sich automatisch um private Vererbung.

Geschützte Vererbung[Bearbeiten]

Geschützte Vererbung verläuft analog zur privaten Vererbung und sagt aus, dass alle geschützten und öffentlichen Member der Elternklasse im Bereich protected stehen.

Wann wird was benutzt?[Bearbeiten]

Um festzustellen wann welche Art von Vererbung eingesetzt wird, gibt es zwei unterschiedliche Arten wie eine abgeleitete Klasse im Verhältnis zu ihrer Basisklasse stehen kann.

  1. ist-Beziehung: "Klasse B ist eine Klasse A" → Klasse B erbt public von A. (Beispiel: Ein Arbeiter ist eine Person)
  2. hat-Beziehung: "Klasse B hat ein Klasse A Objekt" → Klasse B erbt private von A. (Beispiel: Ein Mensch hat ein Herz)
Hinweis

Meistens wird mithilfe von public vererbt. Andere Typen von Vererbung werden nur selten bis gar nicht benutzt. Oft ist es sinnvoll statt einer privaten Vererbung ein Memberobjekt der entsprechenden Klasse zu verwenden.