首頁 > Java > java教程 > 主體

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

Mary-Kate Olsen
發布: 2024-10-31 09:13:30
原創
840 人瀏覽過

 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板