Heim >Java >javaLernprogramm >Überladen vs. Überschreiben: Wie hängt Polymorphismus mit beiden in Java zusammen?
Polymorphismus, Überschreibung und Überladung in Java verstehen
Bei der Diskussion von Polymorphismus in Java ist es wichtig, zwischen Überladung und Überschreibung zu unterscheiden. Beim Überladen werden mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern definiert, während das Überschreiben auftritt, wenn eine Unterklasse eine Methode aus ihrer Oberklasse implementiert.
Was die Frage betrifft, ob Polymorphismus als Überladung oder Überschreibung klassifiziert wird, ist keines von beiden ganz richtig. Polymorphismus umfasst beide Konzepte.
Abstrakte Basisklassen und Überschreibung
Polymorphismus lässt sich am besten durch abstrakte Basisklassen veranschaulichen, die Methoden deklarieren, ohne sie zu implementieren. Unterklassen definieren diese Methoden dann spezifisch für ihre Vererbung. Dieser Prozess gilt als überschreibend, da die Unterklasse ihre eigene Implementierung für die geerbte Methode bereitstellt.
Betrachten Sie beispielsweise die abstrakte Basisklasse Human mit einer abstrakten Methode goPee(), das einen gewöhnlichen Menschen darstellt, der auf die Toilette geht. Die Unterklassen Male und Female überschreiben diese Methode mit bestimmten Implementierungen:
public abstract class Human { public abstract void goPee(); } public class Male extends Human { @Override public void goPee() { System.out.println("Stand Up"); } } public class Female extends Human { @Override public void goPee() { System.out.println("Sit Down"); } }
Durch die Erstellung einer ArrayList mit Instanzen von Human können wir dies tun Rufen Sie die Methode goPee() polymorph auf, was zu unterschiedlichen Ausgaben führt zur spezifischen Unterklasse:
ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); for (Human person : group) person.goPee();
Dies veranschaulicht die Vielseitigkeit des Polymorphismus, der die Verwendung einer gemeinsamen Methode über verschiedene Objekte hinweg ermöglicht, trotz ihrer spezifischen Implementierungen.
Das obige ist der detaillierte Inhalt vonÜberladen vs. Überschreiben: Wie hängt Polymorphismus mit beiden in Java zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!