首頁 >Java >java教程 >方法重載和重寫有什麼差別?

方法重載和重寫有什麼差別?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 12:17:02551瀏覽

What's the difference between method overloading and overriding?

方法重載與重寫

方法重載和重寫是物件導向程式設計中兩個不同的概念,它們有一個共同點:它們都涉及重新定義類別中的方法。但是,它們的目的和實現有很大不同。

方法重載

當一個類別宣告多個具有相同名稱但參數清單不同的方法時,就會發生方法重載。它使單一方法能夠根據提供的參數的類型和數量執行不同的任務。例如:

public void foo(int a) { ... }
public void foo(int a, float b) { ... }

在此範例中,該類別定義了 foo 方法的兩個版本,它們所採用的參數數量不同。當呼叫 foo 方法時,編譯器會根據傳遞的參數決定要呼叫哪個版本。

方法重寫

方法重寫,另一方面,涉及重新定義子類別中具有相同參數清單的方法。與重載不同,當子類別想要提供從父類別繼承的方法的自己的實作時,就會發生重寫。為此,子類別必須使用 @Override 註解來指示它正在重寫現有方法:

class Parent {
    void foo(double d) { ... }
}

class Child extends Parent {

    @Override
    void foo(double d) { ... }
}

在此範例中,子類別重寫從父類別繼承的 foo 方法。當 Child 類別的實例呼叫 foo 方法時,將執行 Child 類別中重寫的實作。

以上是方法重載和重寫有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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