Hauptunterschied : Überladen bedeutet, zwei Methoden derselben Klasse mit demselben Namen und mit unterschiedlichen Parametertypen zu haben, während Überschreiben bedeutet, dass zwei verschiedene Methoden in derselben Klasse mit denselben Parametertypen, aber unterschiedlichen Implementierungen vorhanden sind.
Die Methoden zum Überschreiben und Überladen sind zwei Konzepte oder Techniken, die in Java-Programmiersprachen verwendet werden. Beide Konzepte ermöglichen es dem Programmierer, verschiedene Implementierungen für Methoden unter demselben Namen bereitzustellen. In diesem Artikel werden die beiden Konzepte der Programmierung unterschieden.
Überladen von Funktionen oder Überladen von Methoden ermöglicht das Erstellen mehrerer Methoden mit demselben Namen in derselben Klasse, die sich jedoch in der Eingabe und im Ausgabetyp der Funktion unterscheiden. Es wird einfach als die Fähigkeit einer Funktion definiert, verschiedene Aufgaben auszuführen.
Beim Überladen haben die Methodenimplementierungen denselben Namen, weil sie ähnliche Aufgaben ausführen. Überladung wird auch als polymorph betrachtet. Die Funktionen mit unterschiedlichen Implementierungen hängen von ihren angegebenen Argumenttypen ab. Es ist normalerweise mit statischen Programmiersprachen verbunden, die die Typüberprüfung in Funktionsaufrufen erzwingen. Es wird auch als praktisch betrachtet, da es dem Programmierer ermöglicht, eine Reihe verschiedener Methoden in derselben Klasse zu schreiben. Beim Überladen ändert der Laufzeitprozessor jedoch den Namen aller überladenen Methoden, was ein Problem darstellen kann.
Das Überschreiben von Methoden in der objektorientierten Programmierung ist eine Funktion, mit der eine Unterklasse oder Unterklasse eine bestimmte Implementierung einer Methode bereitstellen kann, die bereits von einer ihrer übergeordneten Klassen oder übergeordneten Klassen bereitgestellt wird. Die Implementierung in der Unterklasse überschreibt oder ersetzt die Implementierung in der übergeordneten Klasse, indem eine Methode mit demselben Namen, denselben Parametern oder Signatur und demselben Rückgabetyp bereitgestellt wird wie die Methode in der übergeordneten Klasse.
Beim Überschreiben der Methode werden die Funktionen so codiert, dass sie bestimmte Aufgaben in einem Programm ausführen. Das Überschreiben hängt vom Vorhandensein einer Basisklassenfunktion für ihr Aussehen ab. Hier wird die ausgeführte Funktion durch das Objekt bestimmt, mit dem sie aufgerufen wird, dh wenn zum Aufrufen der Methode ein Objekt einer übergeordneten Klasse verwendet wird, wird die Funktion in der übergeordneten Klasse ausgeführt. Das Überschreiben ist von Natur aus polymorph; Es hilft, Programme basierend auf dem ersten impliziten Parameter zu entwerfen, der zur Laufzeit aufgelöst werden kann. Es gibt einige Sprachen in Java, mit denen ein Programmierer verhindern kann, dass eine Methode überschrieben wird.
Vergleich zwischen Überladen und Überschreiben:
Überlastung | Überschreiben | |
Definition | Das bedeutet, Methoden derselben Klasse unter demselben Namen zu haben, aber jede Methode hat andere Parameter oder dieselben Parameter mit unterschiedlichen Typen und Reihenfolge. | Dies bedeutet, dass eine Unterklasse mit denselben Methoden unter demselben Namen und genau demselben Parametertyp und demselben Rückgabetyp wie eine Oberklasse vorhanden ist. |
Bedeutung | Dies bedeutet, dass mehrere Methoden denselben Namen in derselben Klasse verwenden, jedoch eine andere Signatur haben. | Dies bedeutet, dass die Methode der Basisklasse in der abgeleiteten Klasse mit derselben Signatur neu definiert wird. |
Verhalten | Es ergänzt oder erweitert das Verhalten der Methoden. | Es ändert das vorhandene Verhalten einer Methode. |
Polymorphismus | Es ist ein Kompilierzeitpolymorphismus. | Es ist ein Laufzeitpolymorphismus. |
Statische Methode | Die statische Methode kann überladen werden. | Die statische Methode kann nicht überschrieben werden. |
Bindung | Statische Bindung | Dynamische Bindung |
Erbe | Es kann Erbschaft erfordern oder nicht. | Es erfordert immer Vererbung. |
Verband | Es ist normalerweise mit statischen Programmiersprachen verbunden. | Es ist normalerweise mit objektorientierten Programmen verbunden. |
Unterschrift | Methoden haben unterschiedliche Signatur. | Methoden müssen dieselbe Signatur haben. |
Geschwindigkeit | Es ist schneller als das Überschreiben. | Es ist langsam im Vergleich zur Überladung. |
Klassen | Es erfordert nicht mehr als eine Klasse zum Überladen. | Es erfordert mindestens zwei Klassen zum Überladen. |
Niveau | Methoden können eine beliebige Zugriffsebene haben. | Methoden haben die gleiche oder breite Zugriffsebene. |
Beispiel | Klasse hinzufügen { int sum (int a, int b) { return a + b; } int sum (int a) { Rückkehr a + 10; } } | Klasse A // Superklasse { Anzeige ungültig (int num) { print num; } } // Klasse B erbt Klasse A Klasse B // Unterklasse { Anzeige ungültig (int num) { print num; } } |