Was ist Polymorphismus in der Programmierung?
sobes.tech KI
Antwort von AI
Polymorphismus ist die Fähigkeit von Objekten verschiedener Klassen, unterschiedlich auf denselben Methodenaufruf zu reagieren. Dies wird durch Vererbung, abstrakte Klassen und Schnittstellen erreicht. In C# zeigt sich Polymorphismus durch Überschreibung (overriding) von Methoden der Basisklasse in abgeleiteten Klassen und durch Überladung (overloading) von Methoden.
Beispiele für Polymorphismus:
-
Methodenüberschreibung (Laufzeit-Polymorphismus): Die abgeleitete Klasse stellt eine eigene Implementierung einer in der Basisklasse deklarierten Methode bereit. Dafür wird in der Basisklasse das Schlüsselwort
virtualverwendet, in der abgeleiteten Klasseoverride.// Basisklasse class Shape { // Virtuelle Methode, die überschrieben werden kann public virtual void Draw() { // Standardimplementierung } } // Abgeleitete Klasse 1 class Circle : Shape { // Überschreiben der Draw-Methode public override void Draw() { // Implementierung für Kreis } } // Abgeleitete Klasse 2 class Square : Shape { // Überschreiben der Draw-Methode public override void Draw() { // Implementierung für Quadrat } }Hier kann eine Liste von
Shape-Objekten erstellt werden, und die MethodeDrawfür jedes aufgerufen werden, wobei die spezifische Implementierung für jede Figur ausgeführt wird. -
Methodenüberladung (Compile-time-Polymorphismus): Mehrere Methoden mit demselben Namen, aber unterschiedlichen Signaturen (Anzahl oder Typen der Parameter) in einer Klasse.
class Calculator { // Überladene Methode Add (für int) public int Add(int x, int y) { return x + y; } // Überladene Methode Add (für double) public double Add(double x, double y) { return x + y; } }
Polymorphismus trägt dazu bei, flexibleren, erweiterbaren und wartungsfreundlichen Code zu erstellen. Er ermöglicht das Schreiben von generischem Code, der mit Objekten verschiedener Typen arbeiten kann.