Was ist der Unterschied zwischen Methodenüberladung und Methodenüberschreibung?


Antwort 1:

Das Überladen von Methoden bedeutet einfach, zwei separate Methoden in einer Klasse mit demselben Namen, aber unterschiedlichen Argumenten bereitzustellen, während der Rückgabetyp der Methode unterschiedlich sein kann oder nicht, wodurch wir denselben Methodennamen wiederverwenden können.

Methodenüberschreibung bedeutet, eine Methode in der untergeordneten Klasse zu definieren, die bereits in der übergeordneten Klasse mit derselben Methodensignatur definiert ist, dh denselben Namen, dieselben Argumente und denselben Rückgabetyp. Aber zur Ausführungszeit weiß JVM klar, dass die Referenz "Säugetier" gehalten wird

Unterschied zwischen Methodenüberladung und Methodenüberschreibung

Weitere Informationen finden Sie unter Alles über das Überladen von Methoden im Vergleich zum Überschreiben von Methoden.


Antwort 2:

Es folgen die Unterschiede zwischen beiden:

Methodenüberladung

1.Erstellen einer neuen Methode mit gleichen und unterschiedlichen Parametern.

2. Wir brauchen uns keine Sorgen um AM, ELM, RT zu machen, sie können gleich oder unterschiedlich sein. Aber wir sollten den Parametertyp oder die Reihenfolge oder Liste ändern.

3. Die Überladungsmethode kann basierend auf Referenz- und Argumenttypen aufgelöst werden.

4. Wir können in derselben oder einer anderen Klasse oder in einer Unterklasse überladen.

5. Wir können die endgültige Methode und die private Methode überladen.

6. Wir erhalten einen mehrdeutigen Fehler.

7. Hier ist ein Super-Schlüsselwort nutzlos, da Überladungsmethoden unterschiedliche Methoden sind.

8. bietet Kompilierungszeitpolymorphismus.

Überschreiben der Methode

1. Bereitstellung einer neuen Implementierung für die Superklassenmethode in der Unterklasse.

2. In der Unterklasse sollte der Prototyp der überschreibenden Methode mit der überschriebenen Methode identisch sein.

3.Die überschreibende Methodenausführung wird basierend auf dem Objekttyp aufgelöst. Die statische Methodenausführung wird basierend auf dem Referenztyp aufgelöst, da sie kein Objekt enthält.

4. Wir können nur in Unterklasse überschreiben.

5. Wir können die endgültige und private Methode nicht überschreiben.

6. Wir bekommen nie mehrdeutige Fehler.

7. Wir müssen das Super-Schlüsselwort für die Ausführung der überschriebenen Methode der übergeordneten Klasse verwenden.

8. Bietet Laufzeitpolymorphismus.


Antwort 3:

Es folgen die Unterschiede zwischen beiden:

Methodenüberladung

1.Erstellen einer neuen Methode mit gleichen und unterschiedlichen Parametern.

2. Wir brauchen uns keine Sorgen um AM, ELM, RT zu machen, sie können gleich oder unterschiedlich sein. Aber wir sollten den Parametertyp oder die Reihenfolge oder Liste ändern.

3. Die Überladungsmethode kann basierend auf Referenz- und Argumenttypen aufgelöst werden.

4. Wir können in derselben oder einer anderen Klasse oder in einer Unterklasse überladen.

5. Wir können die endgültige Methode und die private Methode überladen.

6. Wir erhalten einen mehrdeutigen Fehler.

7. Hier ist ein Super-Schlüsselwort nutzlos, da Überladungsmethoden unterschiedliche Methoden sind.

8. bietet Kompilierungszeitpolymorphismus.

Überschreiben der Methode

1. Bereitstellung einer neuen Implementierung für die Superklassenmethode in der Unterklasse.

2. In der Unterklasse sollte der Prototyp der überschreibenden Methode mit der überschriebenen Methode identisch sein.

3.Die überschreibende Methodenausführung wird basierend auf dem Objekttyp aufgelöst. Die statische Methodenausführung wird basierend auf dem Referenztyp aufgelöst, da sie kein Objekt enthält.

4. Wir können nur in Unterklasse überschreiben.

5. Wir können die endgültige und private Methode nicht überschreiben.

6. Wir bekommen nie mehrdeutige Fehler.

7. Wir müssen das Super-Schlüsselwort für die Ausführung der überschriebenen Methode der übergeordneten Klasse verwenden.

8. Bietet Laufzeitpolymorphismus.