Unterschied zwischen Methodenüberladung und Überschreibung

Unterschied zwischen Methodenüberladung und Überschreibung

Methodenüberlastung

Methodenüberladung, auch als Funktion Überladung oder Kompilierung des Zeitpolymorphismus bezeichnet, ist ein Konzept, zwei oder mehr Methoden mit demselben Namen zu haben, aber im selben Bereich unterschiedliche Signatur. Es gibt viele Programmiersprachen, die diese Funktion unterstützen: ADA, C ++, C#, D und Java.

Beispiel für die Überlastung von Methoden in C#
Wie im obigen Beispiel gezeigt, wird das Verfahren 'Polygon' dreimal mit unterschiedlicher Methodensignatur überladen, i.e Der Typ oder die Anzahl der Parameter sind unterschiedlich.

Methodenüberschreibung

Übergeordnete Methoden, die auch als Funktion oder Laufzeitpolymorphismus bezeichnet wird, ist eine OOP. Die Implementierung in der untergeordneten Klasse überschreibt die Definition der Methode in der Basisklasse, vorausgesetzt, die Methode in der untergeordneten Klasse sollte denselben Namen, Signatur und Rückgabetyp haben sollten.

Beispiel für die Überschreitung der Methode in C#
Hier überschreibt die Draw -Methode in der Source2 -Klasse die in der Source1 -Klasse definierte Zeichnungsmethode.

Unterschied zwischen Methodenüberladung und Methodenüberschreitung

  1. Bei Methodenüberladungsmethoden muss eine andere Signatur aufweisen. Bei der Methode müssen überschreibende Methoden dieselbe Signatur aufweisen.
  2. Funktionsüberladung besteht darin, mehr auf das Verhalten der Methode zu „hinzufügen“ oder zu „erweitern“. Funktionsüberschreitung besteht darin, das Verhalten einer Methode vollständig zu „ändern“ oder neu zu definieren “.
  3. Methodenüberladung wird verwendet, um Kompilierungszeitpolymorphismus zu erreichen. Überschreiben von Methoden wird verwendet, um den Laufzeitpolymorphismus zu erreichen.
  4. In Method/Funktion Overloading Compiler weiß der Compiler, welches Objekt zu welcher Klasse zum Zeitpunkt der Kompilierung zugewiesen wurde, aber in der Methode, die diese Informationen überschreibt, ist bis zur Laufzeit nicht bekannt.
  5. Die Funktion Überladung findet in derselben Klasse statt, während die Übersteuerung in einer Klasse aus einer Basisklasse erfolgt.