Wie man Polymorphismus in C# verwendet

Wie man Polymorphismus in C# verwendet
Polymorphismus wird häufig im objektorientierten Programmierkonzept verwendet. Durch Polymorphismus kann eine abgeleitete Klasse mehrere Formen haben, die als Basisklasse behandelt werden können. C# unterstützt den Polymorphismus durch verschiedene Mechanismen wie Überladung und Verfahren zur Methode. Dieser Artikel deckt die Verwendung von Polymorphismus in C# ab.

Inhaltsverzeichnis

  • Was ist Polymorphismus in C#
  • Arten von Polymorphismus in C#
  • Methodenüberlastung
  • Methodenüberschreibung
  • Beispiele für Polymorphismus in C#
  • Wie man Polymorphismus in C# verwendet
  • Abschluss

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:

  • Zeit kompilieren [Methodenüberladen]
  • Laufzeit [Überschreibung]

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;
Klassenprogramm

Hohlraum calculateum (int num1, int num2)

Konsole.WriteLine ($ "Die Summe von num1 und num2 ist num1 + num2");

Hohlraum calculateum (double num1, double num2)

Konsole.WriteLine ($ "Die Summe von num1 und num2 ist num1 + num2");

statische void main (String [] args)

Programmprogramm = neues Programm ();
int intnum1 = 1;
int intnum2 = 2;
double doublenum1 = 12.5;
double doublenum2 = 7.5;
Programm.Calculateum (intnum1, intnum2);
Programm.Calculateum (doublenum1, doublenum2);

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;
öffentliche Klasse Form

öffentliche virtuelle Leere ()

Konsole.WriteLine ("eine Form zeichnen");


Rechteck für öffentliche Klasse: Form

öffentliche Override void Draw ()

Konsole.WriteLine ("ein Rechteck zeichnen");


öffentliches Klassenprogramm

öffentliche statische Leere Main (String [] Args)

Formform = neuer Form ();
Form.Ziehen();
Rechteck Rechteck = neues Rechteck ();
Rechteck.Ziehen();

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 Klasse

öffentliche virtuelle Leere macht ()

Konsole.WriteLine ("Das Tier macht einen Klang");

Der 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: Tier

öffentliche Override void makeound ()

Konsole.WriteLine ("Der Hund bellt");


Katze für öffentliche Klasse: Tier

öffentliche Override void makeound ()

Konsole.WriteLine ("The Cat Meows");

Das 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 ();
Tier mydog = neuer Hund ();
Tier mycat = new Cat ();
myanimal.Ein Geräusch machen();
Mein Hund.Ein Geräusch machen();
meine Katze.Ein Geräusch machen();

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;
Tiere der öffentlichen Klasse

öffentliche virtuelle Leere macht ()

Konsole.WriteLine ("Das Tier macht einen Klang");


öffentlicher Klassenhund: Tier

öffentliche Override void makeound ()

Konsole.WriteLine ("Der Hund bellt");


Katze für öffentliche Klasse: Tier

öffentliche Override void makeound ()

Konsole.WriteLine ("The Cat Meows");


öffentliches Klassenprogramm

Public static void Main()

Tiermyanimal = neues Animal ();
Tier mydog = neuer Hund ();
Tier mycat = new Cat ();
myanimal.Ein Geräusch machen();
Mein Hund.Ein Geräusch machen();
meine Katze.Ein Geräusch machen();

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.