在Java編程中,重載(Overload)和重寫(Override)是兩個非常常見的概念。盡管兩者的名稱非常相似,但卻存在著一些重要的區別。
重載(Overload)是指在同一個類中,方法名稱相同但參數列表不同的情況下,編寫多個方法的行為。簡單來說,重載使得類中的方法名稱更加靈活,可以為同一個方法名稱提供不同的使用方式。
public class Calculation { public int add(int num1, int num2) { return num1 + num2; } public int add(int num1, int num2, int num3) { return num1 + num2 + num3; } }
從上面的代碼中可以看出,類Calculation中存在兩個名為add的方法。第一個方法add接收兩個整數類型的參數并返回它們的和,而第二個方法add接受三個整數類型的參數并返回它們的和。這便是方法的重載。
相反,重寫(Override)是指在子類中重新定義父類中已有的方法。這意味著在子類中重寫一個方法,其名稱、參數列表和返回類型必須與父類中的方法完全相同。重寫方法使得子類能夠根據需要對繼承而來的方法進行改進或覆蓋。
public class Animal { public void move() { System.out.println("動物可以移動"); } } public class Dog extends Animal { public void move() { System.out.println("狗可以跑和走"); } }
上述代碼中,類Animal中有一個名為move的方法,輸出“動物可以移動”。類Dog繼承這個方法并重寫了它,輸出“狗可以跑和走”。這便是方法的重寫。
綜上所述,雖然重載和重寫可能聽起來相似,但它們有著明顯的區別。重載是為了讓一個方法名稱更加靈活,而重寫則是為了在子類中重寫父類中已有的方法。正確地使用重載和重寫可以使代碼更加的簡潔、優雅。
上一篇java里變量和常量