java中的方法重載和方法重寫有很多區(qū)別。 下面給出了方法重載和方法覆蓋之間的差異列表:
編號 | 方法重載 | 方法重寫 |
---|---|---|
1 | 方法重載用于提高程序的可讀性。 | 方法重寫用于提供已經(jīng)由其超類提供的方法的特定實(shí)現(xiàn)。 |
2 | 方法重載在類內(nèi)執(zhí)行。 | 方法重寫發(fā)生在具有IS-A(繼承)關(guān)系的兩個(gè)類中。 |
3 | 在方法重載的情況下,參數(shù)必須不同。 | 在方法重寫的情況下,參數(shù)必須相同。 |
4 | 方法重載是編譯時(shí)多態(tài)性的例子。 | 方法重寫/覆蓋是運(yùn)行時(shí)多態(tài)性的例子。 |
5 | 在java中,方法重載不能僅通過改變方法的返回類型來執(zhí)行。方法重載中的返回類型可以相同或不同。 但是必須更改參數(shù)類型。 | 在方法重寫/覆蓋中返回類型必須相同或協(xié)變。 |
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...");
}
}