Unterschied zwischen Überschreiben und Überladen in C

Inhaltsverzeichnis:

Unterschied zwischen Überschreiben und Überladen in C
Unterschied zwischen Überschreiben und Überladen in C

Video: Unterschied zwischen Überschreiben und Überladen in C

Video: Unterschied zwischen Überschreiben und Überladen in C
Video: Methoden überladen & überschreiben [Part 8 JAVA OOP Tutorial] 2024, Dezember
Anonim

Hauptunterschied – Überschreiben vs. Ü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 Kompilierzeit erfolgt.

C ist eine von Microsoft entwickelte Mehrzweck-Programmiersprache. Der Hauptvorteil von C besteht darin, dass es die objektorientierte Programmierung (OOP) unterstützt. Eine Säule von OOP ist Polymorphismus. Es gibt einem Objekt mehrere Verh altensweisen. Es gibt zwei Arten von Polymorphismus, die als Überschreiben und Überladen bekannt sind. In diesem Artikel wird der Unterschied zwischen dem Überschreiben und Überladen von Methoden in C erläutert.

Was wird in C überschrieben?

Ein weiteres wichtiges Konzept in OOP ist die Vererbung. Es sollen Attribute und Methoden der bereits existierenden Klasse verwendet werden. 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.

Unterschied zwischen Überschreiben und Überladen in C
Unterschied zwischen Überschreiben und Überladen in C

Abbildung 01: C-Programm mit Überschreibung

Gemäß obigem Programm ist die Klasse Shape die Basisklasse und enthält die Anzeigemethode. Die Klassen Rectangle und Triangle sind abgeleitete Klassen. Diese abgeleiteten Klassen haben auch die gleiche Methodenanzeige mit ihren eigenen Implementierungen.

Zunächst wird die Referenzvariable obj angelegt. Es zeigt auf das Shape-Objekt. Daher wird die Anzeigemethode der Shape-Klasse 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 Triangle-Objekt. Daher wird die Anzeigemethode der Triangle-Klasse ausgeführt. Die Anzeigemethode der Basisklasse wird von den Anzeigemethoden der abgeleiteten Klassen überschrieben.

Die auszuführende Methode wird zur Laufzeit entschieden. 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 Inh alt der Anzeigemethode der Shape-Klasse für alle aus.

Was ist Überladen in C?

Beim Überladen haben mehrere Methoden denselben Namen, aber unterschiedliche Parameter. Die Parameter können unterschiedlicher Art sein. Die Methoden können auch eine unterschiedliche 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 folgende C-Programm.

Hauptunterschied zwischen Überschreiben und Überladen in C
Hauptunterschied zwischen Überschreiben und Überladen in C

Abbildung 02: C-Programm mit Überladung

Gemäß obigem Programm hat Klasse A zwei gleichnamige Methoden namens sum. 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 denselben Namen und dieselbe Anzahl von Parametern. Aber die Parametertypen sind unterschiedlich. Die benötigte Methode wird entsprechend aufgerufen. Überladen kann auch auftreten, wenn die Methodennamen und Parametertypen gleich sind, aber die Anzahl der Parameter unterschiedlich ist.

Was ist die Ähnlichkeit zwischen Überschreiben und Überladen in C?

Sowohl das Überschreiben als auch das Überladen in C sind Arten von Polymorphismus

Was ist der Unterschied zwischen Überschreiben und Überladen in C?

Überschreiben vs. Überladen in C

Überschreiben in C bedeutet, eine bestimmte Implementierung in einer abgeleiteten Klassenmethode für eine Methode bereitzustellen, die bereits in der Basisklasse vorhanden ist. Überladen in C bedeutet, mehrere Methoden mit demselben Namen und unterschiedlichen Implementierungen zu erstellen.
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 unterschiedliche Anzahl von Parametern oder einen anderen Parametertyp.
Vorkommen
In C erfolgt das Überschreiben innerhalb der Basisklasse und der abgeleiteten Klasse. In C tritt Überladen 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 wird als Laufzeitpolymorphismus, dynamischer Polymorphismus oder spätes Binden bezeichnet. Überladen wird als Kompilierzeitpolymorphismus, statischer Polymorphismus oder frühes Binden 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 Kompilierzeit erfolgt.

Empfohlen: