阿摩線上測驗 登入

申論題資訊

試卷:99年 - 099年地方四等_資訊處理#31651
科目:程式設計
年份:99年
排序:0

題組內容

五、名詞解釋:

申論題內容

⑵請解釋 Java 語言中覆寫(override)以及超載(overload)的差別。(10 分)

詳解 (共 2 筆)

詳解 提供者:hchungw
在Java語言中,覆寫(Override)和超載(Overload)是兩種不同的概念,它們是物件導向程式設計中多態性的體現。
覆寫(Override):
覆寫發生在兩個有繼承關係的類之間,子類重寫繼承自父類的方法。
覆寫方法必須和父類的方法有相同的方法名、參數列表和返回類型。
覆寫可以讓子類改變或擴展從父類繼承來的行為。
在覆寫的方法前通常會加上@Override注解,確保覆寫的正確性。
存取權限可以放寬,但不能縮窄。例如,如果父類方法為protected,子類覆寫的方法可以是protected或public,但不能是private。
舉例:
class Animal {
    public void eat() {
        System.out.println("Animal eats");
    }
}
class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("Dog eats");
    }
}
在這個例子中,Dog類覆寫了Animal類中的eat方法。
超載(Overload):
超載發生在一個類的範圍內,一個類中有多個同名的方法,但它們的參數列表不同。
超載方法必須改變參數數量或參數類型。
超載主要用來增強程式的可讀性,提供多種方式來執行相同的任務。
返回類型和訪問修飾符可以不同,它們不影響超載。
舉例:
java
Copy code
class Animal {
    public void eat() {
        System.out.println("Animal eats");
    }
    public void eat(String food) {
        System.out.println("Animal eats " + food);
    }
}
在這個例子中,Animal類超載了eat方法,提供了兩種使用方法:一種不需要參數,另一種需要一個字串參數。
總結:
覆寫是子類和父類之間的行為,涉及繼承。
超載是在同一個類中的方法之間的關係,它只是提供了同一個方法名的不同版本。
 
 
 
詳解 提供者:Triple w.

覆寫(override)與超載(overload)。這兩個概念看似相似,實際上有很大的不同,我們先來分別理解一下:

覆寫(Override)
覆寫是指在子類別中對父類別的某個方法進行重新定義,子類別會提供一個與父類別方法完全相同的方法名稱、參數與返回值類型的實現,並取代父類別的實現。這意味著當我們使用子類別的對象來呼叫這個方法時,執行的是子類別的版本而不是父類別的版本。

  • 關鍵點
    1. 覆寫的方法名稱、參數列表、返回值類型必須與父類別的方法完全相同。
    2. 覆寫只發生在繼承關係中,即父類和子類之間。
    3. 覆寫的目的是用子類的行為取代父類的行為。

超載(Overload)
超載指的是在同一個類別中有多個名稱相同但參數列表不同的方法。這些方法可以根據參數的數量或類型的不同來進行區分,Java 會根據我們傳遞的參數來選擇呼叫哪一個方法。

  • 關鍵點
    1. 方法名稱相同,但參數列表不同(參數的數量或類型)。
    2. 超載與繼承無關,可以在同一個類別中進行。
    3. 目的是讓同一個方法名稱可以處理不同的參數組合
 
 
66fa57b827bb7.jpg