Heim  >  Artikel  >  Java  >  Was sind die Konzepte des Java-Polymorphismus?

Was sind die Konzepte des Java-Polymorphismus?

王林
王林nach vorne
2023-05-19 13:31:271893Durchsuche

1. Das Konzept des Polymorphismus

Einfach ausgedrückt führen verschiedene Objekte das gleiche Verhalten aus, erzeugen aber unterschiedliche Zustände

Ein sehr einfaches Beispiel: Schüler einer bestimmten Klasse Nach der Prüfung haben verschiedene Schüler unterschiedliche Prüfungsergebnisse erzielt, einige haben die Grenze zum Bestehen überschritten und einige haben gute Ergebnisse erzielt.

Um Polymorphismus zu erreichen, sind folgende Bedingungen erforderlich:

1 Es muss sich im Vererbungssystem befinden und eine Aufwärtstransformation erfolgen

#🎜🎜 #2. Die Unterklasse sollte die Methode der übergeordneten Klasse überschreiben werden im Folgenden im Detail vorgestellt

2. Aufwärtstransformation

2.1 Konzept

Wir führen die oben genannten Klassen durch. Modifizieren Sie es:

class Plant {
    String name;
    String source;
    String genu;
    public void func() {
        System.out.println("父类方法");
    }
}
class Tree extends Plant {
 
    public void trait() {
        System.out.println("子类方法");
    }
}

Die sogenannte Aufwärtstransformation besteht darin, ein Unterklassenobjekt zu erstellen und es als übergeordnete Klasse zu verwenden

Die spezifische Operation ist wie folgt:

Plant tree=new Tree();
#🎜🎜 #Weil es so ist Wenn Tree als übergeordnete Klasse verwendet wird, kann er derzeit die Methode der Unterklasse nicht aufrufen , also überspringe ich es

2.2 Häufige Formen des Upcastings

Das obige Beispiel ist das erste: direkte Zuweisung

Außerdem dort sind zwei Formen

als Methodenparameter

Was sind die Konzepte des Java-Polymorphismus?

als Methodenrückgabewert

# 🎜🎜#

3. Umschreiben

Das heißt, die Unterklasse kann weder ein Konstruktor noch eine private, endgültige und statische Änderung sein. und was wir neu schreiben, ist der Inhalt der Methode, der Methodenname, der Rückgabewert und die Parameter der Methode können nicht geändert werden Das Ergebnis des Aufrufs des Merkmals nach der Aufwärtstransformation:

Was sind die Konzepte des Java-Polymorphismus?

Die Methode zum Aufrufen der Unterklasse wird ebenfalls neu geschrieben. Funktionen

Tatsächlich Während der Kompilierung wird zwar die Methode der übergeordneten Klasse aufgerufen, aber die überschriebene Methode bestimmt, welche Methode während der Ausführungsphase aufgerufen werden soll (d. h. dynamische Bindung). Dies ist auch der wesentliche Unterschied zwischen Downloads und Rewriting. 🎜🎜#3.1 Hinweise zum Umschreiben

Was sind die Konzepte des Java-Polymorphismus?1. Statische, endgültige, private geänderte Methoden und Konstruktormethoden können nicht umgeschrieben werden

#🎜 🎜#2. Die Zugriffsrechte von Unterklassenmethoden müssen größer sein als oder gleich der übergeordneten Klasse

3 Nach JDK7 kann der Rückgabewerttyp der überschriebenen Methode unterschiedlich sein, sie muss jedoch eine Eltern-Kind-Beziehung haben, bei der es sich um einen kovarianten Typ handelt

4. Rufen Sie die überschriebene Methode nicht im Konstruktor auf.

Der letzte Punkt wird separat erläutert: Angenommen, der Konstruktor der übergeordneten Klasse ruft die überschriebene Methode auf, da die Konstruktormethode der Unterklasse dies tut Rufen Sie zuerst die Konstruktormethode der übergeordneten Klasse auf, sodass die überschriebene Methode dynamisch gebunden und aufgerufen wurde, bevor das Unterklassenobjekt vollständig erstellt wurde. In diesem Fall steigt die Wahrscheinlichkeit von Programmproblemen erheblich.

Nach dem Verständnis der Aufwärtstransformation und Umschreiben, Sie wissen im Grunde, wie man Polymorphismus in Java implementiert: Kombinieren Sie Aufwärtstransformation und Umschreiben, um Polymorphismus unter dem Vererbungssystem zu erreichen

Das obige ist der detaillierte Inhalt vonWas sind die Konzepte des Java-Polymorphismus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen