Polymorphismus verstehen: Dynamische von statischen Bindungen in Java unterscheiden
In Java ist Polymorphismus die Fähigkeit einer Variablen, auf Objekte unterschiedlicher Art zu verweisen Klassen gibt es in zwei Formen: dynamisch und statisch.
Statische Bindung (Bindung zur Kompilierungszeit)
Bei der statischen Bindung sind Methodenaufrufe an das spezifische Objekt gebunden Kompilierzeit. Dies tritt auf, wenn Methoden mit unterschiedlichen Signaturen in derselben Klasse definiert sind, was als Methodenüberladung bezeichnet wird. Zum Beispiel:
<code class="java">class Calculation { void sum(int a, int b) { System.out.println(a + b); } void sum(int a, int b, int c) { System.out.println(a + b + c); } public static void main(String[] args) { Calculation obj = new Calculation(); obj.sum(10, 10); // 20 obj.sum(10, 10, 10); // 30 } }</code>
Dynamische Bindung (Laufzeitbindung)
Bei der dynamischen Bindung werden Methodenaufrufe zur Laufzeit an das spezifische Objekt gebunden. Dies geschieht, wenn Unterklassen in ihren Oberklassen definierte Methoden überschreiben. Zum Beispiel:
<code class="java">class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Animal { public void move() { System.out.println("Dogs can walk and run"); } } public class TestDog { public static void main(String[] args) { Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal reference but Dog object a.move(); // output: Animals can move b.move(); // output: Dogs can walk and run } }</code>
Das obige ist der detaillierte Inhalt vonDynamische vs. statische Bindung: Wie löst Java Methodenaufrufe zur Laufzeit auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!