Heim > Java > javaLernprogramm > Hauptteil

Dynamische vs. statische Bindung: Wie löst Java Methodenaufrufe zur Laufzeit auf?

Mary-Kate Olsen
Freigeben: 2024-10-31 09:13:30
Original
835 Leute haben es durchsucht

 Dynamic vs. Static Binding: How Does Java Resolve Method Calls at Runtime?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage