Heim >Java >javaLernprogramm >Überladen vs. Überschreiben: Wie hängt Polymorphismus mit beiden in Java zusammen?

Überladen vs. Überschreiben: Wie hängt Polymorphismus mit beiden in Java zusammen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-21 00:38:09642Durchsuche

Overloading vs. Overriding: How Does Polymorphism Relate to Both in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn