Hauptunterschied - Überschreiben und Überladen in C #
Der Hauptunterschied zwischen Überschreiben und Überladen in C # besteht darin, dass die Bindung des überschriebenen Methodenaufrufs an seine Definition zur Laufzeit erfolgt, während die Bindung des überladenen Methodenaufrufs an seine Definition zur Kompilierungszeit erfolgt.
C # ist eine von Microsoft entwickelte Allzweck-Programmiersprache. Der Hauptvorteil von C # besteht darin, dass es die objektorientierte Programmierung (OOP) unterstützt. Eine Säule von OOP ist der Polymorphismus. Es gibt einem Objekt mehrere Verhaltensweisen. Es gibt zwei Arten im Polymorphismus, die als Überschreiben und Überladen bekannt sind. Dieser Artikel beschreibt den Unterschied zwischen Methodenüberschreibung und Überladung in C #.
INHALT
1. Übersicht und Hauptunterschied
2. Was wird in C #
überschrieben? 3. Was wird in C #
überladen ? 4. Ähnlichkeiten zwischen Überschreiben und Überladen in C #
5. Vergleich nebeneinander - Überschreiben und Überladen in C # in Tabellenform
6. Zusammenfassung
Was ist das Überschreiben in C #?
Es gibt ein weiteres wichtiges Konzept in OOP ist die Vererbung. Es werden Attribute und Methoden der bereits vorhandenen Klasse verwendet. Es verbessert die Wiederverwendbarkeit von Code. Die bereits vorhandene Klasse ist die Basisklasse, und die neue Klasse wird als abgeleitete Klasse bezeichnet. Beim Überschreiben des Polymorphismus sollte es eine Basisklasse und eine abgeleitete Klasse geben. Die Bindung des überschriebenen Methodenaufrufs an die Definition erfolgt zur Laufzeit. Ein Beispiel ist wie folgt.
Abbildung 01: C # -Programm mit Überschreiben
Gemäß dem obigen Programm ist die Klasse Shape die Basisklasse und enthält die Anzeigemethode. Klassenrechteck und Dreieck sind abgeleitete Klassen. Diese abgeleiteten Klassen haben auch dieselbe Methodenanzeige mit ihren eigenen Implementierungen.
Zunächst wird die Referenzvariable obj erstellt. Es zeigt auf das Shape-Objekt. Die Anzeigemethode der Shape-Klasse wird also ausgeführt. Dann zeigt die Referenzvariable auf das Rechteckobjekt. Die Anzeigemethode der Rectangle-Klasse wird also ausgeführt. Schließlich zeigt die Referenzvariable auf das Triangle-Objekt. Die Anzeigemethode der Triangle-Klasse wird also ausgeführt. Die Anzeigemethode der Basisklasse wird von den Anzeigemethoden der abgeleiteten Klassen überschrieben.
Die auszuführende Methode wird zur Laufzeit festgelegt. Die Shape-Klasse wird mit dem Schlüsselwort 'virtual' geschrieben. Die Klassen Rectangle und Triangle werden mit dem Schlüsselwort 'override' geschrieben. Wenn diese Schlüsselwörter nicht verwendet werden, gibt die Ausgabe den Inhalt der Anzeigemethode der Formklasse für alle aus.
Was ist Überladung in C #?
Beim Überladen haben mehrere Methoden denselben Namen, jedoch unterschiedliche Parameter. Die Parameter können unterschiedlicher Art sein. Die Methoden können auch eine andere Anzahl von Parametern haben. Das Überladen von Methoden erfolgt in derselben Klasse. Die Bindung überladener Methoden an die Definition erfolgt zur Kompilierungszeit. Siehe das folgende C # -Programm.
Abbildung 02: C # -Programm mit Überladung
Gemäß dem obigen Programm hat Klasse A zwei Methoden mit demselben Namen, die Summe genannt werden. Sie haben verschiedene Arten von Parametern. Im Hauptprogramm wird ein Objekt von A erstellt. Die Summe (2,3) ruft die Summenmethode mit ganzen Zahlen auf. Die Summe (5.1, 7.94) ruft die Summenmethode mit doppelten Werten auf. Beide Methoden haben den gleichen Namen und die gleiche Anzahl von Parametern. Die Parametertypen sind jedoch unterschiedlich. Die erforderliche Methode wird entsprechend aufgerufen. Eine Überladung kann auch auftreten, wenn die Methodennamen und Parametertypen identisch sind, die Anzahl der Parameter jedoch unterschiedlich ist.
Was ist die Ähnlichkeit zwischen Überschreiben und Überladen in C #?
Sowohl Überschreiben als auch Überladen in C # sind Arten von Polymorphismus
Was ist der Unterschied zwischen Überschreiben und Überladen in C #?
Diff Artikel Mitte vor Tabelle
Überschreiben vs Überladen in C # |
|
Das Überschreiben in C # besteht darin, eine bestimmte Implementierung in einer abgeleiteten Klassenmethode für eine Methode bereitzustellen, die bereits in der Basisklasse vorhanden ist. | Beim Überladen in C # werden mehrere Methoden mit demselben Namen und unterschiedlichen Implementierungen erstellt. |
Parameter | |
In C # Overriding haben die Methoden denselben Namen, dieselben Parametertypen und dieselbe Anzahl von Parametern. | Beim C # -Überladen haben die Methoden denselben Namen, aber eine andere Anzahl von Parametern oder einen anderen Parametertyp. |
Auftreten | |
In C # erfolgt das Überschreiben innerhalb der Basisklasse und der abgeleiteten Klasse. | In C # tritt eine Überladung innerhalb derselben Klasse auf. |
Bindungszeit | |
Die Bindung des überschriebenen Methodenaufrufs an seine Definition erfolgt zur Laufzeit. | Die Bindung des überladenen Methodenaufrufs an seine Definition erfolgt zur Kompilierungszeit. |
Synonyme | |
Das Überschreiben wird als Laufzeitpolymorphismus, dynamischer Polymorphismus oder späte Bindung bezeichnet. | Überladung wird als Kompilierungszeitpolymorphismus, statischer Polymorphismus oder frühe Bindung bezeichnet. |
Zusammenfassung - Überschreiben vs. Überladen in C #
Überschreiben und Überladen sind zwei Arten von Polymorphismus. Der Unterschied zwischen Überschreiben und Überladen in C # besteht darin, dass die Bindung des überschriebenen Methodenaufrufs an seine Definition zur Laufzeit erfolgt, während die Bindung des überladenen Methodenaufrufs an seine Definition zur Kompilierungszeit erfolgt.