Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in die Polymorphie | Überblick Über Polymorphismus
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
Einführung in die Polymorphie

Note
Definition

Polymorphismus ist ein zentrales Konzept. Abgeleitet vom Griechischen und bedeutet „viele Formen“, ermöglicht es Objekten verschiedener classes, als Objekt einer gemeinsamen Oberklasse behandelt zu werden. Der wichtigste Aspekt ist die Fähigkeit verschiedener Entitäten, auf dieselbe Nachricht oder Methodenaufruf jeweils unterschiedlich zu reagieren.

Arten von Polymorphismus

Es gibt zwei Hauptarten von Polymorphismus: Kompilierzeit- (statisch) und Laufzeit- (dynamisch) Polymorphismus. Das Verständnis, wie und wann jede Art verwendet wird, ist entscheidend für das Schreiben von flexiblem und effizientem Code.

  • Kompilierzeit-Polymorphismus: tritt durch Funktions- oder Operatorüberladung auf, wobei die auszuführende Methode zur Kompilierzeit bestimmt wird.

  • Laufzeit-Polymorphismus: verwendet virtuelle Funktionen, wodurch abgeleitete Klassen Methoden der Basisklasse überschreiben können, wobei die korrekte Methode zur Laufzeit ausgewählt wird.

Anwendung und Notwendigkeit von Polymorphismus

Ein anschauliches Beispiel für Polymorphismus bietet eine Analogie aus der realen Welt. Betrachten Sie eine grafische Benutzeroberfläche mit einem Button. Dieser Button kann je nach Kontext unterschiedlich agieren—er kann als Upload-Button, Reset-Button oder Abbrechen-Button fungieren.

Jede Schaltfläche führt beim Klicken eine unterschiedliche Aktion aus, aber alle dienen im Wesentlichen als Schaltflächen. Betrachten Sie die theoretische Implementierung dieses Konzepts.

UploadButton.h

UploadButton.h

ResetButton.h

ResetButton.h

CancelButton.h

CancelButton.h

copy
1234
class UploadButton : public Button { public: void onClick() { std::cout << "Upload" << std::endl; } };

Da alle Schaltflächen die gleiche Methode onClick() mit unterschiedlichen Implementierungen besitzen, gehen wir näher darauf ein. Was ist, wenn wir eine Funktion benötigen, die ein Objekt akzeptiert, das zu einer der Schaltflächen-classes als Parameter gehört?

main.cpp

main.cpp

copy
1234567891011
void user_clicked_upload_button(const UploadButton& btn) { btn.onClick(); } void user_clicked_reset_button(const ResetButton& btn) { btn.onClick(); } void user_clicked_cancel_button(const CancelButton& btn) { btn.onClick(); }

Wie Sie sehen, kann das manuelle Erstellen separater Funktionen für jede Schaltfläche Komplexität erzeugen, insbesondere bei Änderungen, da jede Funktion einzeln angepasst werden muss, falls Probleme auftreten. Außerdem sind in der Hauptfunktion zusätzliche Überprüfungen erforderlich, um festzustellen, welche Funktion aufgerufen werden soll. Polymorphismus ermöglicht eine einfache Lösung dieser Probleme.

question mark

Was ist die wörtliche Bedeutung des Begriffs Polymorphismus?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1

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
Einführung in die Polymorphie

Note
Definition

Polymorphismus ist ein zentrales Konzept. Abgeleitet vom Griechischen und bedeutet „viele Formen“, ermöglicht es Objekten verschiedener classes, als Objekt einer gemeinsamen Oberklasse behandelt zu werden. Der wichtigste Aspekt ist die Fähigkeit verschiedener Entitäten, auf dieselbe Nachricht oder Methodenaufruf jeweils unterschiedlich zu reagieren.

Arten von Polymorphismus

Es gibt zwei Hauptarten von Polymorphismus: Kompilierzeit- (statisch) und Laufzeit- (dynamisch) Polymorphismus. Das Verständnis, wie und wann jede Art verwendet wird, ist entscheidend für das Schreiben von flexiblem und effizientem Code.

  • Kompilierzeit-Polymorphismus: tritt durch Funktions- oder Operatorüberladung auf, wobei die auszuführende Methode zur Kompilierzeit bestimmt wird.

  • Laufzeit-Polymorphismus: verwendet virtuelle Funktionen, wodurch abgeleitete Klassen Methoden der Basisklasse überschreiben können, wobei die korrekte Methode zur Laufzeit ausgewählt wird.

Anwendung und Notwendigkeit von Polymorphismus

Ein anschauliches Beispiel für Polymorphismus bietet eine Analogie aus der realen Welt. Betrachten Sie eine grafische Benutzeroberfläche mit einem Button. Dieser Button kann je nach Kontext unterschiedlich agieren—er kann als Upload-Button, Reset-Button oder Abbrechen-Button fungieren.

Jede Schaltfläche führt beim Klicken eine unterschiedliche Aktion aus, aber alle dienen im Wesentlichen als Schaltflächen. Betrachten Sie die theoretische Implementierung dieses Konzepts.

UploadButton.h

UploadButton.h

ResetButton.h

ResetButton.h

CancelButton.h

CancelButton.h

copy
1234
class UploadButton : public Button { public: void onClick() { std::cout << "Upload" << std::endl; } };

Da alle Schaltflächen die gleiche Methode onClick() mit unterschiedlichen Implementierungen besitzen, gehen wir näher darauf ein. Was ist, wenn wir eine Funktion benötigen, die ein Objekt akzeptiert, das zu einer der Schaltflächen-classes als Parameter gehört?

main.cpp

main.cpp

copy
1234567891011
void user_clicked_upload_button(const UploadButton& btn) { btn.onClick(); } void user_clicked_reset_button(const ResetButton& btn) { btn.onClick(); } void user_clicked_cancel_button(const CancelButton& btn) { btn.onClick(); }

Wie Sie sehen, kann das manuelle Erstellen separater Funktionen für jede Schaltfläche Komplexität erzeugen, insbesondere bei Änderungen, da jede Funktion einzeln angepasst werden muss, falls Probleme auftreten. Außerdem sind in der Hauptfunktion zusätzliche Überprüfungen erforderlich, um festzustellen, welche Funktion aufgerufen werden soll. Polymorphismus ermöglicht eine einfache Lösung dieser Probleme.

question mark

Was ist die wörtliche Bedeutung des Begriffs Polymorphismus?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1
some-alt