Java中的方法可以進行重載和重寫,但是這兩種技術是不同的。重載是指在一個類中定義多個具有相同名稱的方法,但是它們的參數類型或參數個數不同。下面是一個示例:
public class MyClass { public void doSomething(int n) { // body } public void doSomething(String s) { // body } }
可以看到,這兩個方法都有相同的名稱doSomething,但是一個需要一個整數參數,而另一個需要一個字符串參數。這種方法稱為方法重載,可以在調用代碼中根據要傳遞的參數的不同來使用不同的方法。
另一方面,重寫是指在子類中重新定義基類中定義的方法。子類中的方法必須具有與基類中的方法相同的名稱、參數和返回類型。這種技術用于實現多態性,因為在運行時,基類引用可以引用派生類的實例,從而調用相應的方法。下面是一個示例:
public class MyParentClass { public void doSomething() { // body } } public class MyChildClass extends MyParentClass { public void doSomething() { // body } }
在這個例子中,MyChildClass繼承自MyParentClass并重寫了doSomething()方法。當我們創建一個MyChildClass實例并調用doSomething()方法時,子類中的方法將被執行。
因此,重載和重寫是Java中重要的概念,但是它們的用途和實現是不同的。