Überladung (Java)
Aus Infostudium Wiki
Inhaltsverzeichnis |
Überladen von Methoden
Definition
Zwei Methoden einer Klassen heißen überladen, wenn sie den gleichen Namen, aber eine unterschiedliche Parameterliste haben. Das überladen von Methoden ist beispielsweise sinnvoll, wenn Methoden eine vergleichbare Funktionalität haben.
Eine unterschiedliche Parameterliste bedeutet dabei, dass die Anzahl und/oder die Typen der Parameter unterschiedlich sind. Es spielt keine Rolle, ob die Methoden in der Klasse deklariert sind, ob sie von einer anderen Klasse geerbt sind oder wie der Ergebnistyp der Methoden aussieht.
Es wird die speziellste passende Methode ausgeführt. D.h. es wird automatisch die Methode ausgewählt, für die am wenigsten Parameter implizit in andere Datentypen konvertiert werden müssen. Diese Auswahl muss eindeutig sein.
Unterschied zu C++
Erbt man überladene Methoden, kann man einzelne davon überschreiben, ohne die nicht überschriebenen zu verdecken.
Beispiel
Die folgenden Methoden geben jeweils den größeren der beiden Parameter zurück. Der Vorteil des überladens liegt in diesem Fall darin, das man durch die Parameter-Datentypen auch den Rückgabe-Datentyp festlegt. Somit kann man sich eine explizite Konvertierung sparen.
public class Ueberladen {
public int max(int i1, int i2) {
return (i1 > i2) ? i1 : i2;
}
public float max(float f1, float f2) {
return (f1 > f2) ? f1 : f2;
}
public double max(double d1, double d2) {
return (d1 > d2) ? d1 : d2;
}
}

