In C++ wird Polymorphismus durch Vererbung erreicht, wodurch Objekte unterschiedliche Verhaltensweisen haben können, selbst wenn sie dieselbe gemeinsame Basisklasse haben. Vererbung ist eine Methode zum Erstellen neuer Klassen, bei der die neue Klasse (abgeleitete Klasse) Mitglieder von einer vorhandenen Klasse (Basisklasse) erbt und neue Mitglieder hinzufügen kann. Wenn eine virtuelle Funktion mithilfe eines Zeigers oder einer Referenz eines abgeleiteten Klassentyps aufgerufen wird, wird die überschriebene Methode in der abgeleiteten Klasse aufgerufen.
Was ist Polymorphismus?
Polymorphismus ermöglicht Objekten ein unterschiedliches Verhalten, selbst wenn sie dieselbe gemeinsame Basisklasse haben. In C++ wird Polymorphismus durch Vererbung erreicht.
Vererbung
Vererbung ist eine Methode zum Erstellen neuer Methoden einer Klasse, wobei die neue Klasse (abgeleitete Klasse) von einer vorhandenen Klasse (Basisklasse) erbt. Eine abgeleitete Klasse erbt alle Mitglieder (Daten und Funktionen) der Basisklasse und kann auch eigene neue Mitglieder hinzufügen.
Wie wird Polymorphismus durch Vererbung erreicht?
Beim Polymorphismus kann ein abgeleitetes Klassenobjekt einen Zeiger oder eine Referenz auf seinen Basisklassentyp haben. Wenn eine virtuelle Funktion mithilfe eines Zeigers oder einer Referenz eines abgeleiteten Klassentyps aufgerufen wird, wird die überschriebene Methode in der abgeleiteten Klasse aufgerufen.
Beispiel:
class Animal { public: virtual void makeSound() { cout << "Animal makes a sound" << endl; } }; class Dog : public Animal { public: void makeSound() override { cout << "Woof woof!" << endl; } }; class Cat : public Animal { public: void makeSound() override { cout << "Meow meow!" << endl; } }; int main() { Animal* animal = new Cat(); // 指向 Cat 对象的 Animal 指针 animal->makeSound(); // 输出 "Meow meow!" }
Im obigen Beispiel:
Animal
ist die Basisklasse. Animal
是基类。Dog
和 Cat
是派生类。makeSound
是一个虚函数,在派生类中重写。animal
是一个指向派生类对象的基类指针。当调用 animal->makeSound()
时,会调用派生类(Cat
)中重写的 makeSound
Dog
und Cat
sind abgeleitete Klassen.
makeSound
ist eine virtuelle Funktion, die in abgeleiteten Klassen überschrieben wird. 🎜animal
ist ein Basisklassenzeiger, der auf ein abgeleitetes Klassenobjekt zeigt. 🎜Beim Aufruf von animal->makeSound()
wird der überschriebene makeSoundCat
) aufgerufen /code>-Methode, Ausgabe „Meow miau!“. 🎜Das obige ist der detaillierte Inhalt vonWie erreicht Vererbung Polymorphismus in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!