首頁  >  文章  >  Java  >  動態與靜態綁定:Java 如何在執行時間解析方法呼叫?

動態與靜態綁定:Java 如何在執行時間解析方法呼叫?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 09:13:30740瀏覽

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

理解多態性:區分Java 中的動態綁定與靜態綁定

在Java 中,多態性是指變數引用不同物件的能力類別有兩種形式:動態和靜態。

靜態綁定(編譯時綁定)

在靜態綁定中,方法呼叫綁定到特定物件編譯時間。當在同一個類別中定義具有不同簽章的方法時,就會發生這種情況,稱為方法重載。例如:

<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>

動態綁定(運行時綁定)

在動態綁定中,方法呼叫在運行時綁定到特定物件。當子類別重寫其超類別中定義的方法時,就會發生這種情況。例如:

<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>

以上是動態與靜態綁定:Java 如何在執行時間解析方法呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn