Überladene Methoden sind Methoden in der gleichen Klasse, die den gleichen Namen tragen , aber nehmen verschiedene Variablen-Typen als Argumente . Zum Beispiel eine Klasse können zwei verschiedene "add "-Methoden enthalten : eine, zwei Doppel -Werte akzeptiert , "add ( double a , double b) ", und eine, die zwei Integer -Werte akzeptiert , "add (int a, int b) . " der Computer entscheidet automatisch, welche Methode zur Laufzeit basierend auf den variablen-Typen an die Methode übergeben nennen . Flexibilität
überladenen Methoden geben Programmierern die Flexibilität, ein ähnliches Verfahren für die verschiedenen Arten von Daten aufzurufen. Wenn Sie auf einem Mathematik-Programm arbeiten, zum Beispiel , könnten Sie eine Überlastung zu mehreren " mehrfach " Klassen , von denen jede eine unterschiedliche Anzahl von Art der Argumentation multipliziert schaffen : die einfachste " mehrfach (int a, int b) " ; multipliziert zwei ganze Zahlen , die kompliziertere Methode " mehrfach ( doppelt a, int b , int c ) " multipliziert ein Doppelzimmer von zwei ganzen Zahlen - man könnte dann rufen " multiplizieren " auf einer beliebigen Kombination von Variablen, die Sie eine überladene erstellt Verfahren für und erhalten die richtige Ergebnis.
Konstrukteurs
Überlastung ist auch auf Konstruktoren verwendet werden, um neue Objekte bei unterschiedlichen Datenmengen erstellen. Zum Beispiel könnten Sie eine Überlastung zu drei verschiedene Konstruktoren für ein "Haus" Objekt mit einer Hausnummer , Straße und Farben Variablen zu erstellen. Die einfachste Konstruktor "Haus ()" hat keine Argumente und ein Haus mit Standard- oder leeren Variablen . Eine komplexere Konstruktor , " Haus ( Hausnummer int , String Straßenname ) , " ein Haus mit der angegebenen Hausnummer und Straßenname , sondern ein Standard- oder leere Farbe . Die komplexeste Konstruktor , "Haus (int Hausnummer , Straßenname String , String Farbe), " ein Haus mit all der angegebenen Information und nichts als Standard . Sie könnten dann ein Haus Objekt auf dem derzeit verfügbaren Informationen basieren , die Nichtverfügbarkeit von Informationen leer gelassen oder bei Ausfall .
Mehrdeutige Verweise
überladener Methoden muss verwenden unterschiedliche Rufnummern oder Arten von Argumenten , um Unklarheiten zu vermeiden. Wenn Sie zwei Methoden in der gleichen Klasse, die den gleichen Namen haben und akzeptieren, zwei Zahlen als Argumente zu schaffen, wird der Java-Compiler nicht in der Lage , zwischen den beiden zu unterscheiden , auch wenn die Eingangsgrößen unterschiedliche Namen haben. Zum Beispiel die Methode " add ( int a, int b) " kann nicht in der gleichen Klasse wie die Methode existieren "add (int c , int d) . "
Rückgabetypen
Sie müssen einen Rückgabetyp für jede überladene Methode . Methoden können unterschiedliche Rückgabetypen - beispielsweise "add (int a, int b) " kann einen Integer , während " hinzufügen (Double A , Doppel- b) " liefert eine doppelte . Allerdings kann Java nicht zwischen zwei verschiedenen Methoden bei ihrer Rückkehr Typs unterscheiden. Deshalb " int mehrfach (Double A , Doppel- b) " kann nicht in der gleichen Klasse wie vorhanden "double mehrfach (Double A , Doppel- b) . "