Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Mehrfache Vererbung | Überblick Über die Vererbung
C++ OOP
course content

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Kapselungsübersicht
4. Überblick Über die Vererbung
5. Überblick Über Polymorphismus

book
Mehrfache Vererbung

Mehrfachvererbung ermöglicht es einer abgeleiteten Klasse, von mehreren Basisklassen zu erben. Das bedeutet, dass eine einzelne abgeleitete Klasse Zugriff auf die Mitglieder (Daten und Funktionen) mehrerer Basisklassen haben kann, wodurch ihre Attribute und Verhaltensweisen effektiv kombiniert werden. Um dieses Konzept besser zu verstehen, beginnen wir mit einem einfachen Beispiel.

Horizontale Mehrfachvererbung

Bei dieser Art der Mehrfachvererbung erbt eine Klasse Eigenschaften und Methoden von mehreren Superklassen auf derselben Ebene in der Vererbungshierarchie. Betrachten Sie Klassen: Shape und Color, jede mit unterschiedlichen Eigenschaften und Methoden. Die Shape definiert die Form eines Objekts, und die Color definiert dessen Farbe.

h

Shape

h

Color

copy
1234567
class Shape { public: void setShape(const std::string& value) { shape = value; } std::string getShape() { return shape; } private: std::string shape; };

Nun erstellen wir eine Unterklasse namens ColoredShape, die Eigenschaften und Methoden von beiden Klassen Shape und Color erbt.

h

ColoredShape

copy
123456789
#include "Shape.h" #include "Color.h" class ColoredShape : public Shape, public Color { public: void describe() { std::cout << "This object is a " << getShape() << " shape and is " << setColor() << '\n'; } };

Vertikale Vererbung

Bei der tiefen Vererbung erbt eine Klasse Eigenschaften und Methoden von ihrem direkten Elternteil und ihren Vorfahren, wodurch eine Vererbungskette entsteht. Betrachten Sie zum Beispiel die Klasse Fahrzeug, die als Grundlage für die Vererbung für Auto, Lkw und andere dienen kann. In unserem Beispiel werden wir das Auto verwenden, um das Konzept zu veranschaulichen.

h

Vehicle

h

Car

copy
12345
class Vehicle { public: void start() { std::cout << "Vehicle started"; } void stop() { std::cout << "Vehicle stopped"; } };

Um vertikale Vererbung zu erreichen, müssen Sie eine Hierarchie einrichten, bei der eine Klasse von einer anderen erbt und dann eine nachfolgende Klasse von der ersten erbt, und so weiter. Wir können ein ElectricCar erstellen, das alle Eigenschaften und Funktionen vom Car erbt, welches selbst vom Vehicle erbt und so eine komplexe Mehrfachvererbungsstruktur etabliert.

h

ElectricCar

copy
123456
#include "Car.h" class ElectricCar : public Car { public: void charge() { std::cout << "Electric car is charging"; } };

Warum Mehrfachvererbung benötigt wird

Mehrfachvererbung bietet Flexibilität und Code-Wiederverwendung in Situationen, in denen eine Klasse Verhaltensweisen oder Eigenschaften von mehr als einer Eltern-Klasse aufweisen muss. Hier sind einige Szenarien, in denen Mehrfachvererbung von Vorteil ist:

  1. Modellierung von realen Beziehungen: Objekte haben oft mehrere Aspekte oder Rollen. Zum Beispiel könnte eine FlyingBird-Klasse sowohl von Flying als auch von Bird erben, um sowohl die Eigenschaften eines Vogels als auch die Fähigkeit zu fliegen zu erfassen. Und Sie können die Klasse Flying weiterhin für andere Objekte verwenden, die fliegen könnten, wie ein Flugzeug.

  2. Code-Wiederverwendbarkeit: Mehrfachvererbung ermöglicht die Wiederverwendung bestehender Klassen ohne Code-Duplikation. Durch das Erben von mehreren Basisklassen kann eine abgeleitete Klasse Funktionen von jeder Basisklasse unabhängig erben.

  3. Interface-Segregation: Es ermöglicht die Erstellung von Schnittstellen, die auf spezifische Bedürfnisse zugeschnitten sind. Anstatt eine monolithische Schnittstelle zu erstellen, ermöglicht die Mehrfachvererbung die Erstellung kleinerer, fokussierterer Schnittstellen, die nach Bedarf kombiniert werden können.

Hinweis

Zerlegen Sie ein komplexes Objekt in einfachere und nutzen Sie Mehrfachvererbung, um flexible und wartbare Software zu erstellen.

Welche der folgenden Aussagen über horizontale Vererbung ist korrekt?

Welche der folgenden Aussagen über horizontale Vererbung ist korrekt?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt