Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen Methodenüberladung und -überschreibung?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 12:17:02517Durchsuche

What's the difference between method overloading and overriding?

Methodenüberladung vs. Überschreibung

Methodenüberladung und -überschreibung sind zwei unterschiedliche Konzepte in der objektorientierten Programmierung, die eine Gemeinsamkeit haben: Sie beinhalten beide Neudefinition einer Methode in einer Klasse. Ihr Zweck und ihre Implementierung unterscheiden sich jedoch erheblich.

Methodenüberladung

Methodenüberladung tritt auf, wenn eine Klasse mehrere Methoden mit demselben Namen, aber unterschiedlichen Argumentlisten deklariert. Es ermöglicht einer einzelnen Methode, je nach Art und Anzahl der bereitgestellten Argumente unterschiedliche Aufgaben auszuführen. Zum Beispiel:

public void foo(int a) { ... }
public void foo(int a, float b) { ... }

In diesem Beispiel definiert die Klasse zwei Versionen der foo-Methode, die sich in der Anzahl der Argumente unterscheiden, die sie annehmen. Beim Aufruf der foo-Methode bestimmt der Compiler anhand der übergebenen Argumente, welche Version aufgerufen werden soll.

Methodenüberschreibung

Methodenüberschreibung beinhaltet andererseits die Neudefinition von a Methode mit derselben Argumentliste in einer Unterklasse. Im Gegensatz zum Überladen kommt es zum Überschreiben, wenn eine untergeordnete Klasse ihre eigene Implementierung einer von der übergeordneten Klasse geerbten Methode bereitstellen möchte. Dazu muss die untergeordnete Klasse die Annotation @Override verwenden, um anzugeben, dass sie eine vorhandene Methode überschreibt:

class Parent {
    void foo(double d) { ... }
}

class Child extends Parent {

    @Override
    void foo(double d) { ... }
}

In diesem Beispiel überschreibt die untergeordnete Klasse die von der übergeordneten Klasse geerbte foo-Methode. Wenn eine Instanz der Child-Klasse die foo-Methode aufruft, wird die überschriebene Implementierung in der Child-Klasse ausgeführt.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Methodenüberladung und -überschreibung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn