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

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Überblick Über Die Kapselung
4. Überblick Über Vererbung
5. Überblick Über Polymorphismus

book
Mehrfachvererbung

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 hat und somit deren Attribute und Verhaltensweisen kombiniert.

Horizontale Mehrfachvererbung

Bei dieser Art der Mehrfachvererbung erbt eine Klasse Eigenschaften und Methoden von mehreren Superklassen auf derselben Ebene der Vererbungshierarchie. Betrachten Sie die classes: Shape und Color, die jeweils unterschiedliche Eigenschaften und Methoden besitzen. Die Shape definiert die Form eines Objekts, und die Color definiert dessen Farbe.

Shape.h

Shape.h

Color.h

Color.h

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

Erstellen wir nun eine Unterklasse namens ColoredShape, die Eigenschaften und Methoden sowohl von den Klassen Shape als auch Color erbt.

ColoredShape.h

ColoredShape.h

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 " << getColor() << '\n'; } };

Vertikale Vererbung

Bei der tiefen Vererbung erbt eine class Eigenschaften und Methoden von ihrem direkten Elternteil und dessen Vorfahren, wodurch eine Vererbungskette entsteht. Betrachten Sie beispielsweise die class Vehicle, die als Grundlage für die Vererbung von Car, Truck und anderen dienen kann. In unserem Beispiel verwenden wir das Car, um das Konzept zu veranschaulichen.

Vehicle.h

Vehicle.h

Car.h

Car.h

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

Um vertikale Vererbung zu erreichen, muss eine Hierarchie erstellt werden, in der eine class von einer anderen erbt und eine weitere Klasse wiederum von der ersten erbt, und so weiter. Wir können ein ElectricCar erstellen, das alle Eigenschaften und Funktionalitäten von Car erbt, wobei Car selbst von Vehicle erbt. Dadurch entsteht eine komplexe Mehrfachvererbung.

ElectricCar.h

ElectricCar.h

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 Wiederverwendbarkeit von Code in Situationen, in denen eine class Verhaltensweisen oder Eigenschaften von mehr als einer Eltern-class aufweisen muss. Hier sind einige Szenarien, in denen Mehrfachvererbung vorteilhaft ist:

  • Rollen aus der realen Welt: Ein fliegender Vogel kann Merkmale sowohl von den Klassen Flying als auch Bird kombinieren und so beide Fähigkeiten repräsentieren. Die Klasse Flying kann auch auf Flugzeuge oder andere Flugobjekte angewendet werden.

  • Code-Wiederverwendung: Mehrfachvererbung ermöglicht es einer Klasse, Funktionen verschiedener Basisklassen ohne Duplizierung wiederzuverwenden.

  • Fokussierte Schnittstellen: Fördert die Kombination kleiner, spezifischer Schnittstellen anstelle einer großen, allgemeinen.

Note
Hinweis

Ein komplexes Objekt in einfachere aufteilen und Mehrfachvererbung nutzen, um flexible und wartbare Software zu erstellen.

question mark

Welche der folgenden Aussagen über horizontale Vererbung ist korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Überblick Über Die Kapselung
4. Überblick Über Vererbung
5. Überblick Über Polymorphismus

book
Mehrfachvererbung

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 hat und somit deren Attribute und Verhaltensweisen kombiniert.

Horizontale Mehrfachvererbung

Bei dieser Art der Mehrfachvererbung erbt eine Klasse Eigenschaften und Methoden von mehreren Superklassen auf derselben Ebene der Vererbungshierarchie. Betrachten Sie die classes: Shape und Color, die jeweils unterschiedliche Eigenschaften und Methoden besitzen. Die Shape definiert die Form eines Objekts, und die Color definiert dessen Farbe.

Shape.h

Shape.h

Color.h

Color.h

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

Erstellen wir nun eine Unterklasse namens ColoredShape, die Eigenschaften und Methoden sowohl von den Klassen Shape als auch Color erbt.

ColoredShape.h

ColoredShape.h

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 " << getColor() << '\n'; } };

Vertikale Vererbung

Bei der tiefen Vererbung erbt eine class Eigenschaften und Methoden von ihrem direkten Elternteil und dessen Vorfahren, wodurch eine Vererbungskette entsteht. Betrachten Sie beispielsweise die class Vehicle, die als Grundlage für die Vererbung von Car, Truck und anderen dienen kann. In unserem Beispiel verwenden wir das Car, um das Konzept zu veranschaulichen.

Vehicle.h

Vehicle.h

Car.h

Car.h

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

Um vertikale Vererbung zu erreichen, muss eine Hierarchie erstellt werden, in der eine class von einer anderen erbt und eine weitere Klasse wiederum von der ersten erbt, und so weiter. Wir können ein ElectricCar erstellen, das alle Eigenschaften und Funktionalitäten von Car erbt, wobei Car selbst von Vehicle erbt. Dadurch entsteht eine komplexe Mehrfachvererbung.

ElectricCar.h

ElectricCar.h

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 Wiederverwendbarkeit von Code in Situationen, in denen eine class Verhaltensweisen oder Eigenschaften von mehr als einer Eltern-class aufweisen muss. Hier sind einige Szenarien, in denen Mehrfachvererbung vorteilhaft ist:

  • Rollen aus der realen Welt: Ein fliegender Vogel kann Merkmale sowohl von den Klassen Flying als auch Bird kombinieren und so beide Fähigkeiten repräsentieren. Die Klasse Flying kann auch auf Flugzeuge oder andere Flugobjekte angewendet werden.

  • Code-Wiederverwendung: Mehrfachvererbung ermöglicht es einer Klasse, Funktionen verschiedener Basisklassen ohne Duplizierung wiederzuverwenden.

  • Fokussierte Schnittstellen: Fördert die Kombination kleiner, spezifischer Schnittstellen anstelle einer großen, allgemeinen.

Note
Hinweis

Ein komplexes Objekt in einfachere aufteilen und Mehrfachvererbung nutzen, um flexible und wartbare Software zu erstellen.

question mark

Welche der folgenden Aussagen über horizontale Vererbung ist korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
some-alt