Das Hauptunterschied zwischen Überschreiben und Überladen in C # ist das Das Binden eines überschriebenen Methodenaufrufs an seine Definition erfolgt zur Laufzeit, während das Binden eines überladenen Methodenaufrufs an seine Definition zur Kompilierzeit erfolgt.
C # ist eine von Microsoft entwickelte allgemeine Programmiersprache. Der Hauptvorteil von C # ist, dass es Object Oriented Programming (OOP) unterstützt. Eine Säule der OOP ist der Polymorphismus. Ein Objekt erhält mehrere Verhaltensweisen. Im Polymorphismus gibt es zwei Arten, die als Überschreiben und Überladen bekannt sind. Dieser Artikel beschreibt den Unterschied zwischen Überschreiben und Überladen von Methoden in C #..
1. Übersicht und Schlüsseldifferenz
2. Was überschreibt in C #
3. Was ist ein Überladen in C #
4. Ähnlichkeiten zwischen Überschreiben und Überladen in C #
5. Side-by-Side-Vergleich - Überschreiben oder Überladen in C # in Tabellenform
6. Zusammenfassung
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 die gleiche Methodendarstellung mit ihren eigenen Implementierungen.
Zunächst wird die Referenzvariable obj angelegt. Es zeigt auf das Shape-Objekt. Die Anzeigemethode der Shape-Klasse wird also ausgeführt. Dann zeigt die Referenzvariable auf das Rectangle-Objekt. Daher wird die Anzeigemethode der Rectangle-Klasse ausgeführt. Schließlich zeigt die Referenzvariable auf das Objekt Dreieck. Daher wird die Anzeigemethode der Triangle-Klasse ausgeführt. Die Darstellungsmethode der Basisklasse wird von den Anzeigemethoden der abgeleiteten Klassen überschrieben.
Die auszuführende Methode wird zur Laufzeit festgelegt. Die Shape-Klasse wird mit einem "virtuellen" Schlüsselwort geschrieben. Die Klassen Rectangle und Triangle werden mit dem Schlüsselwort 'override' geschrieben. Wenn diese Schlüsselwörter nicht verwendet werden, wird der Inhalt der Anzeigemethode der Shape-Klasse für alle ausgegeben.
Beim Überladen haben mehrere Methoden den gleichen Namen, jedoch unterschiedliche Parameter. Die Parameter können unterschiedlich sein. Die Methoden können auch eine andere Anzahl von Parametern haben. Das Überladen von Methoden tritt in derselben Klasse auf. Die Bindung überladener Methoden an die Definition erfolgt zur Kompilierzeit. Siehe das unten stehende C # -Programm.
Abbildung 02: C # -Programm mit Überladung
Gemäß dem obigen Programm hat Klasse A zwei Methoden mit demselben Namen, die als Summe bezeichnet werden. Sie haben verschiedene Arten von Parametern. Im Hauptprogramm wird ein Objekt von A erstellt. Die Summe (2,3) ruft die Summenmethode mit Ganzzahlen 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. Überladen kann auch auftreten, wenn Methodennamen und Parametertypen gleich sind, die Anzahl der Parameter jedoch unterschiedlich ist.
Überschreiben vs Überladen in C # | |
Durch das Überschreiben in C # wird eine spezifische Implementierung in einer abgeleiteten Klassenmethode für eine bereits in der Basisklasse vorhandene Methode bereitgestellt. | Beim Überladen in C # werden mehrere Methoden mit demselben Namen mit unterschiedlichen Implementierungen erstellt. |
Parameter | |
Beim Überschreiben von C # haben die Methoden denselben Namen, dieselben Parametertypen und eine gleiche Anzahl von Parametern. | Bei der Überladung von C # haben die Methoden denselben Namen, jedoch eine andere Anzahl von Parametern oder einen anderen Parametertyp. |
Auftreten | |
In C # tritt das Überschreiben innerhalb der Basisklasse und der abgeleiteten Klasse auf. | In C # tritt Ü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 Kompilierzeit. |
Synonyme | |
Überschreiben heißt als Laufzeitpolymorphismus, dynamischer Polymorphismus oder spätes Binden. | Überladung wird als bezeichnet Zeitpolymorphismus kompilieren, statischer Polymorphismus oder frühe Bindung. |
Ü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 Kompilierzeit erfolgt.
1. Kumar, Mukesh. C # Ecke. Hier verfügbar
2. tutorialspoint.com. "C # Polymorphismus." TutorialsPoint. Hier verfügbar
3.Tutorialspoint.com. "C # -Datentypen". TutorialsPoint , Hier verfügbar