Java中的重寫和重載是兩個非常重要的概念, 在代碼編寫中,正確理解重載和重寫的區別對我們正確使用Java語言起到至關重要的作用。
重載
public class OverloadDemo { public void print(){ System.out.println("hello world"); } public void print(String str){ System.out.println("hello "+ str); } }
重載(Overload)是指在一個類中定義了多個同名的方法,但其參數類型、個數或者順序不同。
在上例中我們定義了兩個同名但參數類型不同的方法,我們稱為方法的重載,重載,并不改變方法返回值的類型,但是可以通過參數不同來調用不同的方法。在調用時,編譯器會根據實際參數的類型去匹配哪個方法。
重寫
class Animal { public void move(){ System.out.println("Animal can move"); } } class Dog extends Animal{ public void move(){ System.out.println("Dog can move in four legs"); } }
重寫(Override)是指在子類中有一個與父類中方法名、返回值類型和參數列表都一樣的方法。
在上例中,Dog繼承了Animal類并重寫了Animal中的move方法,我們稱為方法的重寫。調用時,在編譯器會自動去尋找子類中的重寫的方法。被重寫的方法不能擁有比父類更低的可見性。
總的來說,重載是在一個類中多個方法的名稱和參數列表不同,而重寫是在子類中修改或者覆蓋在父類中的方法。
上一篇java的重點和難點