Dieser Artikel untersucht hauptsächlich Inhalte über Überladen, Umschreiben, Polymorphismus, statische Bindung und dynamische Bindung in Java wie folgt.
Überlast , der englische Name ist Überladung, was bedeutet, dass mehr als eine Methode mit demselben Namen in einer Klasse definiert ist. Die Anzahl der Parameter, Parametertypen und Reihenfolge dieser Methoden kann nicht gleich sein. Der Rückgabetyp kann gleich oder unterschiedlich sein.
public class tstaticoverload {static int height; tstaticoverload () {System.out.println ("Einsamen"); Höhe = 0;} TStaticoverload (init initialHeight) {Höhe = initialHeight; system.out.println ("Schaffung neuer Baum, der" + Höhe + "-System +". "Fuß groß");} statische Hohlrauminfo (String S) {System.out.println (s + ": Baum ist" + Höhe + "Fuß groß");}} public class testso {public static void main (String [] args) {tstaticoverload t = new tstaticoverload (5); tstaticoverload.info ();Aus: Schaffung eines neuen Baumes, der 5 Fuß groß ist, ist eine 5 Fuß hohe Überlastungsmethode: Der Baum ist 5 Fuß groß ein Sämling pflanzt
Umschreiben, der englische Name wird überschrieben, was bedeutet, dass im Fall der Vererbung eine in der Unterklasse definierte Methode mit demselben Namen, dem gleichen Rückgabetyp oder dem kompatiblen Typ und den gleichen Parametern wie die Methoden in der Basisklasse definiert ist. Dies wird als Subklasse die Basisklassenmethode umschreiben. Dies ist ein notwendiger Schritt zur Implementierung des Polymorphismus.
Polymorphismus: Ein Polymorphismus ist die Fähigkeit des gleichen Verhaltens, mehrere verschiedene Manifestationen oder Formen zu haben.
public class StaticSupper {public static String staticGet() {return "Base staticGet()";}public String dynamicGet() {return "Base dynamicGet()";}}class StaticSub extends StaticSupper {pub static String staticGet() {return "Sub staticGet()";}}public String dynamicGet() {return "Sub dynamicGet()";}}class StaticMub erweitert Staticsupper {Pub static String staticget () {return "MUB staticget ()";} public String dynamicget () {return "mub dynamicget ()";}} public class staticpolymorphism {public static void main (String [] args) {Staticsupper sup1 = new StaticsUb (); System.out.println (sup1.staticget ()); System.out.println (sup1.dynamicget ()); Staticsupper sup2 = new staticMub (); System.out.println (sup2.staticget ()); System.out.println (sup2.Dynamicget ()); }}OUT: Base staticget () sub dynamicget () base staticget () mub dynamicget ()
Das Konzept der Programmbindung:
Die Bindung bezieht sich auf die Assoziation eines Methodenaufrufs mit der Klasse (der Methodenkörper), in der sich die Methode befindet. Für Java wird die Bindung in statische Bindung und dynamische Bindung unterteilt; oder es wird als frühes Bindung und verspätete Bindung bezeichnet.
Statische Bindung:
Die Methode wurde vor der Ausführung des Programms gebunden und vom Compiler oder einem anderen Verbindungsprogramm implementiert. Zum Beispiel: C.
Für Java kann es während der Programmkompilierungsperiode als Bindung verstanden werden. Hier ist besonders klar, dass die einzigen Methoden in Java endgültige, statische, private und Konstruktor -Methoden sind, die frühzeitig verbinden.
Dynamische Bindung:
Spätere Bindung: Dynamische Bindung bezieht sich auf den Compiler, der nicht weiß, welche Methode während der Kompilierungsphase aufgerufen werden soll, bis die Laufzeit entsprechend dem Typ des spezifischen Objekts gebunden ist.
Wenn eine Sprache eine verspätete Bindung implementiert, muss sie auch einige Mechanismen bereitstellen, um den Typ des Objekts während des Betriebs zu bestimmen und geeignete Methoden separat aufzurufen. Mit anderen Worten, der Compiler kennt den Objekttyp zu diesem Zeitpunkt immer noch nicht, aber der Mechanismus zum Aufruf von Methoden kann ihn selbst untersuchen und die richtige Methodenkörper finden. Unterschiedliche Sprachen haben unterschiedliche Möglichkeiten, eine verspätete Bindung zu implementieren. Aber wir können zumindest so denken: Sie alle müssen bestimmte spezielle Arten von Informationen im Objekt installieren.
Die Überladung von Methoden umfasst statische Methodenüberladung und gewöhnliche Methodenüberladung. Die statische Methodenüberladung ist die statische Bindung, und der Methodenaufruf erfolgt durch: Klassenname. Verfahren. Die Überladung des normalen Methodens ist eine dynamische Bindung, und Methodenaufrufe werden durch: Instanzobjektreferenz. Verfahren. Der Konstruktor kann überladen werden, kann aber nicht umgeschrieben werden.
Statische Methoden können neu geschrieben werden, aber es wird kein polymorpher Effekt erreicht.
Zusammenfassen
In der obigen Stelle geht es um die kurze Diskussion dieses Artikels über Überladung, Umschreiben, Polymorphismus, statische Bindung und dynamische Bindung in Java. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!