English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie die Methodenüberschreibung sowie deren Implementierung in Java anhand von Beispielen kennenlernen.
In Java, wenn zwei oder mehrMethodeFalls die Parameter unterschiedlich sind (unterschiedliche Anzahl von Parametern, unterschiedliche Typen von Parametern oder beide), können sie denselben Namen haben. Diese Methoden werden als Überschreibmethoden bezeichnet, und diese Funktion wird als Methodenüberschreibung bezeichnet. Zum Beispiel:
void func() { ... } void func(int a) { ... } float func(double a) { ... } float func(int a, float b) { ... }
Hier ist die Methode func() überschrieben. Diese Methoden haben den gleichen Namen, aber akzeptieren unterschiedliche Parameter.
Bitte beachten Sie, dass die Rückgabetypen dieser Methoden unterschiedlich sind. Überschriebene Methoden können unterschiedliche Rückgabetypen haben, können aber auch nicht unterschiedliche Rückgabetypen haben, aber sie müssen unterschiedliche Parameter akzeptieren.
Angenommen, Sie müssen die Addition eines bestimmten numerischen Wertes durchführen, aber es können eine beliebige Anzahl von Parametern geben (aus Gründen der Einfachheit kann man sagen2oder3Parameter).
Um die Aufgabe zu erledigen, können zwei Methoden sum für zwei und drei Parameter erstellt werden2num(int, int) und sum3num(int, int, int). Aber andere Programmierer und Sie selbst könnten verwirrt sein, weil beide Methoden dasselbe Verhalten haben, aber unterschiedliche Namen tragen.
Die bessere Methode, dies zu tun, ist die Überschreibung von Methoden. Und je nach übergebenem Parameter wird eine der überschriebenen Methoden aufgerufen. Dies hilft, die Lesbarkeit des Programms zu verbessern.
Hier sind verschiedene Methoden zur Ausführung von Methodenüberschreibungen:
class MethodOverloading { private static void display(int a){ System.out.println("Parameter: " + a); } private static void display(int a, int b){ System.out.println("Parameter: " + a + " und " + b); } public static void main(String[] args) { display(1); display(1, 4); } }
Ausgabe:
Parameter: 1 Parameter: 1 und 4
class MethodOverloading { //Diese Methode akzeptiert int private static void display(int a){ System.out.println("Es wurde Integer-Daten erhalten."); } //Diese Methode akzeptiert ein String-Objekt private static void display(String a){ System.out.println("Es wurde ein String-Objekt erhalten."); } public static void main(String[] args) { display(1); display("Hello"); } }
Ausgabe:
Es wurde Integer-Daten erhalten Es wurde ein String-Objekt erhalten.
Hierbei akzeptieren beide überschriebenen Methoden einen Parameter. Aber eine akzeptiert einen int-Typen, während die andere ein String-Objekt akzeptiert.
Lassen Sie uns einen realen Beispiel betrachten:
class HelperService { private String formatNumber(int value) { return String.format("%d", value); } private String formatNumber(double value) { return String.format("%.",3f", value); } private String formatNumber(String value) { return String.format("%.",2f", Double.parseDouble(value));}} } public static void main(String[] args) { HelperService hs = new HelperService(); System.out.println(hs.formatNumber(5)) System.out.println(hs.formatNumber(89.9934)) System.out.println(hs.formatNumber("550")); } }
Wenn Sie das Programm ausführen, lautet die Ausgabe:
500 89.993 550.00
BeachtungIm Java können Sie auch Konstruktoren auf ähnliche Weise überschreiben, wie Methoden.
Empfohlen: Java Konstruktorüberschreibung
Wenn zwei oder mehrere Methoden verschiedene Parameter akzeptieren, können sie denselben Namen in derselben Klasse haben. Diese Funktion wird als Methodenüberschreibung bezeichnet.
Methodenüberschreibung kann durch eine der folgenden Methoden erreicht werden:
Ändern Sie die Anzahl der Parameter.
Oder ändern Sie den Datentyp der Parameter.
Methodenüberschreibung kann nicht durch Ändern des Rückgabetyps der Methode erreicht werden.