Denken im Polymorphismus in Java3
Menschen werden oft durch andere, nicht angegebene Merkmale von Java verwirrt, z. B. die Überlastung von Methoden, die manchmal als objektorientiert dargestellt werden. Lassen Sie sich nicht täuschen: Wenn es nicht verspätet ist, ist es kein Polymorphismus
Übersetzung nach Text
Menschen werden immer durch ein anderes nicht-objektorientiertes Merkmal von Java verwechselt, wie die Überlastung von Methoden. Manchmal existiert es als objektorientiert. Bitte sei nicht dumm. Wenn es keine verspätete Bindung gibt (dh dynamische Bindung während der Laufzeit), ist es nicht polymorph.
Daher möchte diese Passage ausdrücken, dass Polymorphismen eine dynamische Bindung haben müssen, ansonsten ist es kein Polymorphismus, und die Überladung von Methoden ist kein Polymorphismus (weil die Methodenüberlastung während der Kompilierungsperiode bestimmt wird und in der späteren Zeit keine dynamische Bindung vorhanden ist, dh die Laufzeitzeitraum)
Wenn diese drei Bedingungen erfüllt sind , gibt es die Vererbung 2. Es gibt überschrieben.
<span style = "Schriftgröße: 14px;"> Beispiel: Public Class Adresse {private String-Name; öffentliche Adresse (String-Name) {this.name = name;} public String getName () {return name;} public void void setname (String name) {this.name = name;}}} Define der Basisklasse (Abstract-Klasse): Öffentliche Klasse: Öffentliche Klasse): Öffentliche Klassenklasse): Öffentliche Klassenklasse: öffentlicher Klassen): öffentlicher Klassenklassen: öffentlicher Klassen) {abtrakte klasse): öffentlicher klasse) Public Class Car erweitert das Fahrzeug {@Overridepublic void go (Adressadresse) {System.out.println ("Car to" + address.getName ()); Drive (Vehicle V) {/// Polymorphismus, die übergeordnete Klassenreferenz auf das Subklassenobjekt und die tatsächliche Übertragung ist eine Unterklasse des Abstract -Klassenfahrzeugs oder der Implementierungsklasse, und der Compiler findet die Implementierungsmethode basierend auf der spezifischen Implementierungsklasse. v.go (neue Adresse ("Hangzhou (Abstract)")); /// Diese Methode wird in der spezifischen Implementierung umgeschrieben} test: public static void main (String [] args) {Treiber d = neuer Treiber (); D.Drive (New Ebene ()); // Es ist eigentlich ein Ebenenobjekt, dann findet der Compiler die Implementierung von GO in der Ebene, D.Drive (New Car ()); // Es ist eigentlich ein Autoobjekt, dann findet der Compiler die Implementierung von GO in Ebene} Ausgangsergebnis: Ebene zu Hangzhou (Abstract) Auto zu Hangzhou (Abstract) </span>Polymorphismus: Bezieht sich auf die verschiedenen Zustände derselben Sache, wie zum Beispiel: Wasser. Wasser kann drei Staaten haben:
Gas, Flüssigkeiten und Feststoffe. Dann kann der Polymorphismus in Java auch als diese Bedeutung verstanden werden:
Die Technik, um das übergeordnete Objekt so zu setzen, dass er einem oder mehreren seiner Kinderobjekte gleich ist,
Zum Beispiel Eltern = Kind;
Polymorphismus ermöglicht die Referenz von Objekten verschiedener Klassen mit derselben Klasse (übergeordnete Klasse).
Und die gleiche Operation auf unterschiedliche Weise durchführen, abhängig vom referenzierten Objekt.
Die polymorphe Implementierung umfasst zwei Möglichkeiten: Überladung und Überschreibung
Zum Beispiel: Tier a = neuer Tiger (); Dies ist ein altes Thema, haha ...
Die übergeordnete Klassenreferenz verweist auf das Objekt der untergeordneten Klasse. Die Tierklasse enthält eine EAT () -Methode, und die Tigerklasse erbt von
Animal Class, wenn die Unterklasse die EAT () -Methode der übergeordneten Klasse umschreibt, können Sie bei der Aufforderung der Kinderklasse folgen.
Der formelle Ruf von, ist im Wesentlichen die übergeordnete Klassenmethode, aber nachdem die Unterklasse neu geschrieben wurde, wird sie zu einem anderen Weg, nämlich Polymorphismus.
Das obige ist die kurze Diskussion darüber, welche Aspekte der Umsetzung des Java -Polymorphismus hauptsächlich widerspiegeln. Ich hoffe, es wird für alle hilfreich sein und wulin.com mehr ~ unterstützen ~