Inhaltsverzeichnis
Was ist Polymorphismus in C#
Polymorphismus stammt aus zwei griechischen Wörtern: Poly Und Morph. Das Wort Poly Hier steht für viele und Morph steht für Formulare. Es ist die Fähigkeit des Objekts in der Programmierung, verschiedene Formen zu erwerben.
Polymorphismus ermöglicht es, Objekte verschiedener Klassen zu behandeln, als wären sie aus derselben Klasse. Dies kann unter Verwendung des Vererbungskonzepts erfolgen, da abgeleitete Klassen die Eigenschaften der Basisklasse nehmen oder erben können.
Arten von Polymorphismus in C#
Polymorphismus kann in zwei Typen eingeteilt werden, basierend darauf, wann es auftritt:
Methodenüberlastung
Die Überladung von Methoden kann mehrere Methoden mit demselben Namen definieren, die jedoch unterschiedliche Parameter enthalten. Der Compiler entscheidet über die Methode, die auf der Grundlage von Argumenten der Methode aufgerufen wird. Mithilfe der Methodenüberladung können wir Aufgaben ausführen, die ähnlich sind, aber unterschiedliche Eingabeparameter haben.
Methodenüberschreibung
In C# überschrieben die Methode ist eine Technik, mit der eine abgeleitete Klasse eine eigene Implementierung einer Methode bereitstellt, die bereits von ihrer Basisklasse bereitgestellt wird. Überschreiben der Methode ist genau wie die virtuelle Funktion von c++. Wenn eine Methode in einer abgeleiteten Klasse denselben Namen, denselben Rückgabetyp und die gleichen Parameter wie eine Methode in ihrer Basisklasse hat, soll die Methode in der abgeleiteten Klasse die Methode in der Basisklasse überschreiben.
Im Polymorphismus sollte die überragende Basismethode virtuell, abstrakt oder überschrieben sein. Überschreiben Sie die Methoden über die implementierenden Basisklassenmitglieder auf neue Weise. Die Übersteuerung der Methode wird durch die Verwendung der Schlüsselwörter virtueller und Überschreiberungen erreicht.
Beispiele für Polymorphismus in C#
Im Folgenden finden Sie einen Beispielcode, in dem beide Methoden in C#überschreiben und überladen werden:
Beispiel 1: Methodenüberlastung
Hier haben wir im folgenden Beispiel mehrere Methoden in einer einzelnen Klasse definiert. Alle diese Methoden teilen den gleichen Namen, enthalten jedoch unterschiedliche Parameter.
mit System verwenden;Der obige Code gibt zwei Zahlen, um zu summieren, und er zeigt Methodenüberlastung in C#. Der Berechnet Die Methode wird übergeladen, um zwei Ganzzahlparameter bzw. zwei Doppelparameter zu akzeptieren.
Die Hauptmethode erstellt eine Instanz der Programmklasse und ruft die CalculateSum -Methode zweimal auf, einmal mit zwei ganzzahligen Argumenten und einmal mit zwei doppelten Argumenten.
Wenn das Programm ausgeführt wird, druckt es die Summe der beiden Zahlen, die an die übergeben wurden Berechnet Methode mithilfe der String -Interpolation zum Erstellen der Ausgabemeldung. Die folgende Ausgabe ist auf der Konsole zu sehen:
Beispiel 2: Überschreiben von Methoden
Dieses Beispiel demonstriert das Konzept der Überschreitung der Methode, wobei eine abgeleitete Klasse eine eigene Implementierung einer Methode liefern kann, die von ihrer Basisklasse geerbt wurde.
mit System verwenden;Hier ist eine Basisklasse, die benannt ist Formklasse. Die Formklasse enthält eine virtuelle Methode genannt Ziehen. Hier ist ein virtuelles Schlüsselwort ein Hinweis darauf, dass eine abgeleitete Klasse die definierte Methode überschreiben kann.
Die Rechteckklasse überschreibt die Ziehen Methode und wird aus der Formklasse abgeleitet. Die Rechteckklasse verfügt über eigene Eigenschaften für die Implementierung. In diesem Fall druckt die Zeichnenmethode der Rechteckklassenklassen Ein Rechteck zeichnen anstatt Eine Form zeichnen.
Als nächstes in Hauptsächlich(), Es wird eine Instanz der Formklasse erstellt, und ihre Ziehmethode wird genannt. Dann wird eine Instanz der Rechteckklasse erstellt, und seine Ziehmethode wird genannt.
Da die Rechteckklasse die Zeichnungsmethode der Formklasse überschreibt, wird die Implementierung der Rechteckklasse aufgerufen, wenn wir die Zeichnungsmethode auf dem Rechteckobjekt aufrufen, und aufgerufen und Ein Rechteck zeichnen wird zur Konsole gedruckt. Wenn das Programm ausgeführt wird, wird es ausgegeben:
Wie man Polymorphismus in C# verwendet
Nachdem wir das Polymorphismus -Konzept in C# kennen.
Schritt 1: Definieren Sie die Basisklasse
Der erste Schritt besteht darin, die Basisklasse zu definieren, die die Methoden oder Eigenschaften enthält, die von allen abgeleiteten Klassen geteilt werden. Die Basisklasse wird mit dem definiert Klasse Stichwort:
Tiere der öffentlichen KlasseDer obige Code enthält eine Basisklasse Tier Das hat eine virtuelle Methode Ein Geräusch machen. Das virtuelle Schlüsselwort zeigt, dass die abgeleitete Klasse die definierte Methode überschreibt.
Schritt 2: Definieren Sie die abgeleiteten Klassen
Der nächste Schritt besteht darin, die abgeleiteten Klassen zu definieren, die aus der Basisklasse stammen. In C#können wir eine abgeleitete Klasse mit der definieren ":" Operator.
öffentlicher Klassenhund: TierDas obige Beispiel enthält zwei Antriebsklassen Hund Und Katze, Und diese beiden Klassen nehmen Eigenschaften aus der Basisklasse, die als Tier bezeichnet wird. Beide Klassen überschreiben die Ein Geräusch machen Methode mit ihrer Implementierung.
Schritt 3: Verwenden Sie Polymorphismus
Der letzte Schritt besteht darin, den Polymorphismus im Code zu verwenden. Jetzt werden wir Instanzen der abgeleiteten Klassen definieren und ihre Methoden mithilfe der Basisklassenreferenz aufrufen.
Tiermyanimal = neues Animal ();Hier haben wir Fälle des Tier-, Hund- und Katzenunterrichts erstellt. Danach die Ein Geräusch machen Die Methode wird in jeder Instanz aufgerufen. Seit der Ein Geräusch machen Die Methode ist virtuell, die tatsächliche Implementierung, die aufgerufen wird, hängt vom tatsächlichen Typ der Instanz ab. Das bedeutet, dass, wenn wir Mydog anrufen.Macht () oder mycat.Macht (), die Ein Geräusch machen Die Methode wird in der Hunde- oder Katzenklasse aufgerufen.
Beispielcode
Im Folgenden finden Sie den kombinierten Code der oben genannten Schritte:
mit System verwenden;Nach dem Ausführen des oben genannten Code ist die folgende Ausgabe auf der Konsole zu sehen:
Abschluss
Verwenden von Polymorphismus in C# Ein Code kann geschrieben werden, der mehrere Objekttypen verwaltet. In C#können wir Polymorphismus verwenden, indem wir eine Basisklasse definieren, abgeleitete Klassen erstellen, die von der Basisklasse erben und die Basisklassenreferenz verwenden, um die Methoden der abgeleiteten Klassen aufzurufen. Durch die Befolgen der im obigen Artikel beschriebenen Schritte kann jeder das Polymorphismus -Konzept in C# verwenden.