在Java編程中,重寫(override)和重載(overload)是兩個重要的概念,初學者容易混淆。下面我們來詳細說明這兩者的區(qū)別。
重載(Overload):指同一個類中的兩個或多個方法名稱相同,但它們的參數(shù)個數(shù)、參數(shù)類型或返回值不同。
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public double add(double a, double b) {
return a + b;
}
}
以上代碼就是重載的例子。在一個類中,我們可以定義多個同名方法,但是它們的參數(shù)個數(shù)、類型或者返回值都不同,這就是重載。
重寫(Override):表示子類重新定義了父類的方法,即子類中出現(xiàn)了與父類中方法名、參數(shù)列表都相同的方法。
public class Animal {
public void move() {
System.out.println("動物可以移動");
}
}
public class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}
以上代碼就是重寫的例子。在Dog類中的move()方法與父類Animal中的move()方法具有相同的方法名、參數(shù)列表與返回類型,這就被認為是一種重寫方法。
總結(jié)一下,Java中的重載和重寫都是實現(xiàn)多態(tài)的兩種方式。重載是在同一個類中定義多個方法名相同的方法,它們的參數(shù)個數(shù)、類型或者返回值都不同。而重寫是子類實現(xiàn)對父類中同名方法的重新定義,它們的方法名、參數(shù)列表和返回值都相同。