Das Vererbung in der Programmierung objektorientierten ist eine Möglichkeit, Objekte in einer Hierarchie von der allgemeinsten bis zur spezifischsten zu organisieren. Es ist das Gadget, mit dem eine Klasse in eine andere Klasse erweitert wird, wobei eine analoge Ausführung beibehalten wird.
In den meisten klassenbasierten objektorientierten Sprachen erhält ein durch Vererbung erstelltes Objekt, das als untergeordnetes Objekt bezeichnet wird, alle Eigenschaften und Verhaltensweisen des übergeordneten Objekts..
Daher ist es eine Qualität, die die Beziehung zwischen verschiedenen Klassen darstellt. Durch Vererbung kann eine Klasse dasselbe Verhalten wie eine andere Klasse haben und dieses Verhalten erweitern oder anpassen, um eine spezielle Aktion für bestimmte Anforderungen bereitzustellen.
Vererbung kann dabei helfen, Objekte darzustellen, die einige Unterschiede und Ähnlichkeiten in ihrer Funktionsweise aufweisen. Sie können alle Funktionen, die die Objekte gemeinsam haben, in eine Basisklasse einfügen und dann eine oder mehrere Unterklassen mit Ihrer eigenen benutzerdefinierten Funktionalität definieren.
Artikelverzeichnis
Vererbung ist eines der Hauptmerkmale der objektorientierten Programmierung, mit der eine neue Klasse aus vorhandenen Klassen definiert wird.
Das heißt, neue Klassen können aus vorhandenen Basisklassen abgeleitet werden, wodurch neue Funktionen hinzugefügt werden. Sie müssen nicht von Grund auf neu schreiben. Daher bietet die Vererbung eine Möglichkeit, vorhandenen Code einfach wiederzuverwenden.
Wenn Sie bereits eine Klasse haben, die fast alles tut, was Sie wollen, können Sie eine Unterklasse erstellen, die einen Teil ihres Verhaltens teilweise überschreibt, oder möglicherweise werden neue Funktionen hinzugefügt..
Eine abgeleitete Klasse erbt alle Methoden der Basisklasse mit Ausnahme der folgenden:
- Konstruktoren, Destruktoren und Kopierkonstruktoren der Basisklasse.
- Überladene Operatoren der Basisklasse.
- Basisklassenfreundliche Funktionen.
Vererbung dient wie ein Stammbaum dazu, eine Hierarchie von Klassen zu bilden. Es ist wichtig zu beachten, dass die für eine Basisklasse bestimmten Attribute automatisch in der abgeleiteten Klasse vorhanden sind. Die Methoden für die Basisklasse funktionieren auch für die Derivate.
Eine Klasse wird als Unterklasse der Klasse bezeichnet, von der sie erbt. Auf der anderen Seite wird diese Klasse Ihre Superklasse sein. Die allgemeinste Klasse kann als Basisklasse bezeichnet werden, da sie sich an der Basis der Hierarchie befindet.
Vererbung ist in einigen Sprachen mit statischen Typen sehr beliebt, da der Programmierer einige der Einschränkungen des statischen Typs vermeiden kann.
Ein Objekt, das von einem anderen Objekt erbt, wird als Subtyp dieses Objekts betrachtet. Ein Beispiel könnten die Objekte "Ausbilder" und "Schüler" sein, die jeweils von "Person" erben..
Wenn Lehrer und Schüler vom selben Personentyp sind, können Sie eine Funktion schreiben, die den Personentyp als Parameter akzeptiert und auf die Objekte des Lehrers und des Schülers angewendet wird, da beide Erben der Person sind.
Wenn eine abgeleitete Klasse die Eigenschaften und das Verhalten einer einzelnen Basisklasse erbt. Das heißt, eine Klasse erstreckt sich auf eine andere einzelne Klasse.
Bezieht sich auf das Gadget, in dem Sie von einer abgeleiteten Klasse erben können, wodurch diese abgeleitete Klasse zur Basisklasse für eine neue Klasse wird. Das heißt, es ergibt sich, wenn eine abgeleitete Klasse aus einer anderen abgeleiteten Klasse erstellt wird.
Bei dieser Vererbung erben viele Unterklassen von einer einzelnen Klasse. Das heißt, es passiert, wenn eine einzelne Basisklasse von mehr als einer abgeleiteten Klasse geerbt wird.
Dies ist die resultierende Vererbung, wenn eine der drei vorherigen Vererbungen kombiniert wird (einfach, hierarchisch und mehrstufig)..
Sie entspricht der Vererbungszahl, wenn eine Klasse von mehr als einer Oberklasse erbt. Der Nachteil bei dieser Art der Vererbung besteht darin, dass die abgeleitete Klasse mit der Abhängigkeit umgehen muss, die sie von zwei Basisklassen hat.
Andererseits ermöglicht diese Art der Vererbung Programmierern, Klassen zu erstellen, die die Aspekte mehrerer Klassen und ihre entsprechenden Hierarchien kombinieren..
Wenn eine Klasse von einer öffentlichen Basisklasse abgeleitet wird, werden die öffentlichen Mitglieder der Basisklasse zu öffentlichen Mitgliedern der abgeleiteten Klasse und die geschützten Mitglieder der Basisklasse zu geschützten Mitgliedern der abgeleiteten Klasse.
Auf die privaten Mitglieder einer Oberklasse kann niemals direkt von einer abgeleiteten Klasse aus zugegriffen werden, sondern über Aufrufe an die öffentlichen und geschützten Mitglieder der Basisklasse..
Wenn Sie eine Klasse erstellen, die von einer geschützten Oberklasse erbt, werden sowohl die öffentlichen als auch die geschützten Mitglieder dieser Oberklasse zu geschützten Mitgliedern der abgeleiteten Klasse.
Bei einer Unterklasse aus einer privaten Oberklasse werden die öffentlichen und geschützten Mitglieder dieser Oberklasse zu privaten Mitgliedern der Unterklasse.
Um zu zeigen, wie das Prinzip der Vererbung funktioniert, nehmen wir Roboter oder eine bessere Klasse von Robotern in der Programmiersprache Python. Dazu eine Klasse namens RobotMédico (PhysicianRobot), die von der Roboter-Superklasse abgeleitet ist.
Wenn Sie sich den Code der RobotMédico-Klasse ansehen, sehen Sie, dass in dieser Klasse kein Attribut oder keine Methode definiert wurde.
Da die RobotMedico-Klasse eine Unterklasse von Robot ist, erbt sie in diesem Fall sowohl die __init__- als auch die say_hi-Methode. Das Erben dieser Methoden bedeutet, dass sie so verwendet werden können, als ob sie in der RobotMédico-Klasse definiert worden wären..
Wenn eine Instanz von RobotMédico erstellt wird, erstellt die Funktion __init__ auch ein Namensattribut. Die say_hi-Methode kann auf das Objekt „y“ von RobotMédico angewendet werden, wie aus dem Ergebnis des vorherigen Codes hervorgeht.
Eine Klasse kann von mehr als einer Klasse erben, was bedeutet, dass sie Daten und Funktionen von mehreren Oberklassen erben kann. Um eine abgeleitete Klasse zu definieren, wird eine Klassenableitungsliste verwendet, um die Basisklassen anzugeben.
Eine Klassenableitungsliste in C ++ benennt eine oder mehrere Basisklassen und hat die folgende Form: Klasse abgeleitete Klasse:: Zugriffsspezifizierer Basisklasse, in welchem Zugriffsspezifizierer es ist Öffentlichkeit, geschützt oder Privatgelände, Y. Basisklasse ist der Name einer zuvor definierten Klasse. Wenn nicht verwendet Zugriffsspezifizierer, Wird genommen Privatgelände Standard.
Sie können sich die Oberklasse "Shape" und ihre abgeleitete Klasse "Rectangle" wie folgt vorstellen:
Wenn der obige Code kompiliert und ausgeführt wird, erfolgt die folgende Ausgabe: "Gesamtfläche: 35".
Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.