1. Methodenüberlastung
Der Methodenname ist der gleiche, aber die Parameter sind unterschiedlich, dies ist Überlastung.
Die sogenannten unterschiedlichen Parameter haben zwei Hauptpunkte: Die erste ist, dass die Anzahl der Parameter unterschiedlich ist, und zweitens ist, dass die Arten von Parametern unterschiedlich sind. Solange einer dieser beiden Aspekte unterschiedlich ist, kann es eine Überladung der Methode darstellen.
Paket cn.galc.test; public class testOverload {void max (int a, int b) {System.out.println (a> b? a: b); } / * * int max (int a, int b) { * return a> b? A: B; *} */ void max (float a, float b) {System.out.println (a> b? a: b); }}Hier haben die beiden maximalen Methoden mit Hohlraummodifikator denselben Namen, ihre Parametertypen sind jedoch unterschiedlich, sodass sie Überladung darstellen können. Die int max (int a, int b) und die void max (int a, int b) Methode stehende Methode stellt keine Überlastung dar. Jetzt sind sie zwei Methoden mit doppelten Namen. Es ist nicht erlaubt, zwei Methoden mit doppelten Namen in einer Klasse zu deklarieren, und es wird ein Fehler in der Zusammenstellung sein. Der Methodenname ist der gleiche und der Parametertyp ist der gleiche. Nur der Rückgabewert ist anders. Dies stellt keine Überlastung dar, da die Methode auf diese Weise aufgerufen werden kann. Es kann nicht verwendet werden, wenn Sie eine Methode aufrufen. Bei Aufrufen dieser beiden Methoden wird die Ganzzahlnummer daher übergeben. Da beide Methoden denselben Namen und denselben Parametertyp haben, kann der Compiler nicht unterscheiden, welche Methode aufgerufen werden soll. Der Grund für die tiefe Überlastungsniveau: Solange der Compiler dieser beiden Methoden sie unterscheiden und wissen, welche beim Anruf aufgerufen werden muss, wird es keine Verwirrung geben, diese beiden Methoden machen eine Überlastung aus.
Schauen wir uns die folgenden zwei Methoden an:
int max (int a, int b) {system.out.println ("die int max (int a, int b) genannte"); A> B zurückgeben? A: b;} int max (kurz a, kurz B) {System.out.println ("Die int max (kurze a, kurze b) Methode"); A> B zurückgeben? A: B;} Diese beiden Methoden können auch Überlastung darstellen, da der Compiler es als INT -Typ behandelt, sobald er eine Ganzzahl sieht. Wenn der Compiler eine Ganzzahl eingibt, ruft der Compiler zuerst die Methode Max (int a, int b) auf. Wenn Sie die Methode Max (Short A, Short B) aufrufen möchten, müssen Sie sie in die Hauptmethode wie folgt schreiben:
public static void main (String [] args) {testoverload t = new TestOverLoad (); T.max (3,4); // Die Methode max (int a, int b) wird als kurz a = 3 bezeichnet; kurz B = 4; t.max (a, b); // Die Methode max (kurz A, Short B) wird hier aufgerufen. }2. Überladung von Konstruktionsmethoden
Wie gewöhnliche Methoden können auch Konstruktoren überladen werden
Paket cn.galc.test; öffentliche Klasse Person {int id; int Alter; / *** Konstruktor*/ public Person () {id = 0; Alter = 20; } / *** Konstruktor überladen ein* @param i* / public Person (int i) {id = i; Alter = 20; } / ** * Konstruktor überladen zwei * @param i * @param j * / public Person (int i, int j) {id = i; Alter = J; }}Das obige ist eine detaillierte Erklärung der Überlastung von Java -Methoden. Ich hoffe, es wird für das Lernen aller hilfreich sein.