java中方法過載和方法重寫的區別


java中的方法過載和方法重寫有很多區別。 下面給出了方法過載和方法覆蓋之間的差異列表:

編號 方法過載 方法重寫
1 方法過載用於提高程式的可讀性。 方法重寫用於提供已經由其超類提供的方法的特定實現。
2 方法過載在類內執行。 方法重寫發生在具有IS-A(繼承)關係的兩個類中。
3 在方法過載的情況下,引數必須不同。 在方法重寫的情況下,引數必須相同。
4 方法過載是編譯時多型性的例子。 方法重寫/覆蓋是執行時多型性的例子。
5 在java中,方法過載不能僅通過改變方法的返回型別來執行。方法過載中的返回型別可以相同或不同。 但是必須更改引數型別。 在方法重寫/覆蓋中返回型別必須相同或協變。

Java方法過載範例

class OverloadingExample {
    static int add(int a, int b) {
        return a + b;
    }

    static int add(int a, int b, int c) {
        return a + b + c;
    }
}

Java方法覆蓋範例

class Animal {
    void eat() {
        System.out.println("eating...");
    }
}

class Dog extends Animal {
    void eat() {
        System.out.println("eating bread...");
    }
}