Überladene Methoden sind Methoden in derselben Klasse, die denselben Namen haben, aber unterschiedliche Variablentypen als Argumente akzeptieren. Zum Beispiel kann eine Klasse zwei verschiedene "add"-Methoden enthalten: eine, die zwei Double-Werte akzeptiert, "add (double a, double b)" und eine, die zwei akzeptiert ganzzahlige Werte, "add (int a, int b)." Der Computer entscheidet automatisch, welche Methode zur Laufzeit aufgerufen wird, basierend auf den Variablentypen, die an den. übergeben werden Methode.
Flexibilität
Überladene Methoden geben Programmierern die Flexibilität, eine ähnliche Methode für verschiedene Datentypen aufzurufen. Wenn Sie beispielsweise an einem Mathematikprogramm arbeiten, können Sie durch Überladen mehrere "Multiplizieren"-Klassen erstellen, jedes davon multipliziert eine andere Anzahl von Argumenten: das einfachste "multiplizieren (int a, int b)" multipliziert zwei ganze Zahlen; die kompliziertere Methode "multiply (double a, int b, int c)" multipliziert ein Double mit zwei ganzen Zahlen -- du könntest dann Rufen Sie "multiply" für eine beliebige Kombination von Variablen auf, für die Sie eine überladene Methode erstellt haben, und erhalten Sie das richtige Ergebnis.
Video des Tages
Konstrukteure
Überladen wird auch bei Konstruktoren verwendet, um neue Objekte mit unterschiedlichen Datenmengen zu erstellen. Sie können beispielsweise das Überladen verwenden, um drei verschiedene Konstruktoren für ein "Haus"-Objekt mit einer Hausnummer, einem Straßennamen und Farbvariablen zu erstellen. Der einfachste Konstruktor "House()" nimmt keine Argumente an und erstellt ein Haus mit Standard- oder leeren Variablen. Ein komplexerer Konstruktor, "Haus (int houseNumber, String streetName)," erstellt ein Haus mit der angegebenen Hausnummer und dem angegebenen Straßennamen, aber einer Standardfarbe oder einer leeren Farbe. Der komplexeste Konstruktor "Haus (int houseNumber, String streetName, String color)" erstellt ein Haus mit allen angegebenen Informationen und lässt nichts als Standard. Sie können dann ein Hausobjekt basierend auf den derzeit verfügbaren Informationen erstellen, wobei die nicht verfügbaren Informationen leer gelassen oder standardmäßig eingestellt werden.
Mehrdeutige Referenzen
Überladene Methoden müssen unterschiedliche Zahlen oder Typen von Argumenten verwenden, um Mehrdeutigkeiten zu vermeiden. Wenn Sie zwei Methoden in derselben Klasse erstellen, die denselben Namen haben und zwei Ganzzahlen als Argumente akzeptieren, wird die Der Java-Compiler kann die beiden nicht unterscheiden, selbst wenn die Eingabevariablen unterschiedliche Namen haben. Beispielsweise kann die Methode "add (int a, int b)" nicht in derselben Klasse wie die Methode "add (int c, int d)" existieren.
Rückgabearten
Sie müssen für jede überladene Methode einen Rückgabetyp definieren. Methoden können unterschiedliche Rückgabetypen haben - zum Beispiel kann "add (int a, int b)" eine ganze Zahl zurückgeben, während "add (double a, double b)" ein Double zurückgibt. Java kann jedoch nicht zwischen zwei verschiedenen Methoden basierend auf ihrem Rückgabetyp unterscheiden. Daher kann "int multiply (double a, double b)" nicht in derselben Klasse wie "double multiply (double a, double b)" vorkommen.