在Java中,重寫和重載是兩個常見的概念,也是面試中經常會被問到的問題。雖然它們有些相似之處,但是它們的定義和應用場景是不同的。
重寫(Override)
重寫是指在子類中定義一個與父類中同名、同參數類型和同返回值類型的方法,這樣子類中的方法會覆蓋掉父類中的方法。 例如: public class Animal { public void eat() { System.out.println("Animal is eating"); } } public class Cat extends Animal { @Override public void eat() { System.out.println("Cat is eating"); } }
在這個例子中,Cat類重寫了父類Animal中的eat方法,并在具體實現中輸出了“Cat is eating”。
重載(Overload)
重載是指在一個類中定義多個同名但參數列表不同的方法,這些方法會根據不同的參數類型和個數進行調用。 例如: public class Calculator { public int add(int x, int y) { return x + y; } public int add(int x, int y, int z) { return x + y + z; } } 調用: Calculator c = new Calculator(); int sum1 = c.add(1, 2); int sum2 = c.add(1, 2, 3);
在這個例子中,Calculator類中定義了兩個同名但參數不同的add方法,可以根據需要選擇調用不同的方法。
總的來說,重寫和重載都是Java中的基本概念,需要注意它們的區別與使用場景,對于實際的編程開發和面試都具有重要的意義。