Überladen von Methoden
Wie bereits erwähnt, können Methoden überladen werden. Überladen bedeutet, dass derselbe Methodenname mehrfach in einer Klasse verwendet werden kann. Das Überladen findet häufig bei Konstruktoren oder Konvertierungsmethoden statt.
Damit das Überladen möglich ist, muss wenigstens eine der folgenden Vorraussetzungen erfüllt sein:
- Der Datentyp mindestens eines Übergabeparameters ist anders als in den übrigen gleichnamen Methoden.
- Die Anzahl der Übergabeparameter ist unterschiedlich.
Hier ein paar Beispiele aus der Java Klassenbibliothek java.lang.Math
public static int abs (int) public static float abs (float) public static long abs (long) public static double abs (double)
In der Methode abs wird der absolute Wert des übergebenen Parameters zurückgegeben. Da alle Methoden dieselbe Funktionalität bieten soll, wird die Methode überladen. Nur der Datentyp des übergebenen Parameters ist unterschiedlich. So muss man für eine mathematische Methode, die immer dasselbe macht, nicht für jeden Datentyp einen neuen Namen wählen.
Weitere Beispiele für überladene Methoden:
public void setWerte(int wert1, int wert2) public void setWerte(int wert1, int wert2, int wert3) public void setWerte(int wert1, float wert2) public void setWerte(int wert1, short wert2) public void setWerte(int wert1, String wert2) public void setWerte(float wert1, int wert2, int wert3) public void setWerte(int wert1, byte[ ] wert2, int wert3)
Auch ein Konstruktor kann auf diese Weise überladen werden.
Beispiel für einen überladenen Konstruktor:
public class Person { // Attribute String name; String vorname; Person() { /* default Konstruktor */ } // 1.überladener Konstruktor Person(String name) { this.name=name; } // 2.überladener Konstruktor Person(String name, String vorname) { this.name=name; this.vorname=vorname; } }