Methodenüberschreibung und -überladung sind unterschiedliche Erscheinungsformen des Java-Polymorphismus. Überschreiben ist eine Manifestation von Polymorphismus zwischen Eltern- und Unterklassen, während Überladung eine Manifestation von Polymorphismus in einer Klasse ist.
Wenn eine in einer Unterklasse definierte Methode denselben Namen und dieselben Parameter wie ihre übergeordnete Klasse hat, spricht man von einer überschreibenden Methode. Wenn ein Objekt einer Unterklasse diese Methode verwendet, ruft es die Definition in der Unterklasse auf. Dadurch scheint die Definition in der übergeordneten Klasse „abgeschirmt“ zu sein.
Wenn in einer Klasse mehrere Methoden mit demselben Namen definiert sind und diese möglicherweise eine unterschiedliche Anzahl von Parametern, unterschiedliche Parametertypen oder unterschiedliche Parameterreihenfolgen haben, spricht man von Methodenüberladung. Es kann nicht durch Zugriffsberechtigungen, Rückgabetypen oder ausgelöste Ausnahmen überlastet werden.
1. Methodenüberlastung (Überlastung)
Konzept: Vereinfacht ausgedrückt: Bei der Methodenüberladung handelt es sich um mehrere Implementierungsmethoden derselben Funktion einer Klasse. Welche Methode verwendet wird, hängt von den vom Aufrufer angegebenen Parametern ab.
Dinge zu beachten:
(1) Die Methodennamen sind gleich (2) Die Parametertypen, die Anzahl und die Reihenfolge der Methoden unterscheiden sich in mindestens einer von ihnen nicht. (3) Die Rückgabetypen der Methoden können unterschiedlich sein. (4) Die Modifikatoren von Die Methoden können unterschiedlich sein, wenn nur die Rückgabetypen unterschiedlich sind. Wenn die Überladung nur unterschiedliche Steuerzugriffsmodifikatorsymbole aufweist, kann dies keine Überladung darstellen.
Eine überladene Methode kann den Typ des Rückgabewerts ändern.
2. Methodenüberschreibung (Überschreibung)
Konzept: Vereinfacht ausgedrückt bedeutet Methodenabdeckung, dass die Unterklasse eine Methode hat, die denselben Namen, denselben Rückgabetyp und dieselben Parameter wie eine Methode der übergeordneten Klasse hat. Dann sagen wir, dass die Methode der Unterklasse die Methode der übergeordneten Klasse überschreibt Klasse.
Hinweis: Es gibt viele Bedingungen für die Methodenabdeckung. Generell müssen zwei Punkte beachtet werden:
(1) Der Rückgabetyp, die Parameter und der Methodenname der Methode der Unterklasse müssen genau mit dem Rückgabetyp, den Parametern und dem Methodennamen der Methode der übergeordneten Klasse übereinstimmen, andernfalls tritt ein Kompilierungsfehler auf.
(2) Methoden der Unterklasse können die Zugriffsrechte der Methoden der übergeordneten Klasse nicht reduzieren (das Gegenteil ist möglich).
Beispiel:
Instanz überschreiben