Wenn bei der objektorientierten Programmierung eine Klasse von einer anderen abgeleitet wird, kann dies auf drei Arten geschehen: öffentlich, geschützt oder privat. Unter privater Vererbung versteht man insbesondere, dass die öffentlichen und geschützten Mitglieder der Basisklasse als private Mitglieder der abgeleiteten Klasse behandelt werden.
In diesem Fall erbt Derived privat von Base. Auch wenn die Vererbung privat ist, kann Derived innerhalb seiner eigenen Methoden weiterhin auf geschützte Mitglieder von Base zugreifen. Auf diese Mitglieder kann jedoch nicht über Instanzen von Derived oder anderen Klassen zugegriffen werden, selbst wenn es sich um Unterklassen von Derived handelt.
Auswirkungen der privaten Vererbung
Private Vererbung wird im Allgemeinen für eine „Hat-ein“-Beziehung und nicht für eine „Ist-ein“-Beziehung verwendet, wie es für die öffentliche Vererbung typisch ist. Das bedeutet, dass DerivedBase als interne Implementierung verwendet, anstatt seine Schnittstelle offenzulegen. Dies ist nützlich, um die Basisklasse vollständig zu kapseln und den Zugriff auf ihre Schnittstelle von außen zu verhindern.
Schlussfolgerung
Die Möglichkeit, über private Vererbung auf geschützte Mitglieder zuzugreifen, ermöglicht es Softwareentwicklern, das Design und die Architektur ihrer Anwendungen flexibel zu verwalten und dabei streng zu kontrollieren, wie die Funktionalität von Basisklassen offengelegt wird. Dies führt zu einer besseren Kontrolle über die Codekopplung und -kohäsion, was das Abhängigkeitsmanagement und die langfristige Wartbarkeit erleichtert.
Wenn bei der objektorientierten Programmierung eine Klasse von einer anderen abgeleitet wird, kann dies auf drei Arten geschehen: öffentlich, geschützt oder privat. Unter privater Vererbung versteht man insbesondere, dass die öffentlichen und geschützten Mitglieder der Basisklasse als private Mitglieder der abgeleiteten Klasse behandelt werden.
Praktisches Beispiel in C++
Betrachten wir das folgende Beispiel in C++:
In diesem Fall erbt
Derived
privat vonBase
. Auch wenn die Vererbung privat ist, kannDerived
innerhalb seiner eigenen Methoden weiterhin auf geschützte Mitglieder vonBase
zugreifen. Auf diese Mitglieder kann jedoch nicht über Instanzen vonDerived
oder anderen Klassen zugegriffen werden, selbst wenn es sich um Unterklassen vonDerived
handelt.Auswirkungen der privaten Vererbung
Private Vererbung wird im Allgemeinen für eine „Hat-ein“-Beziehung und nicht für eine „Ist-ein“-Beziehung verwendet, wie es für die öffentliche Vererbung typisch ist. Das bedeutet, dass
Derived
Base
als interne Implementierung verwendet, anstatt seine Schnittstelle offenzulegen. Dies ist nützlich, um die Basisklasse vollständig zu kapseln und den Zugriff auf ihre Schnittstelle von außen zu verhindern.Schlussfolgerung
Die Möglichkeit, über private Vererbung auf geschützte Mitglieder zuzugreifen, ermöglicht es Softwareentwicklern, das Design und die Architektur ihrer Anwendungen flexibel zu verwalten und dabei streng zu kontrollieren, wie die Funktionalität von Basisklassen offengelegt wird. Dies führt zu einer besseren Kontrolle über die Codekopplung und -kohäsion, was das Abhängigkeitsmanagement und die langfristige Wartbarkeit erleichtert.