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


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.