Java是一種流行的面向對象編程語言,它支持重載和重寫兩種不同類型的方法。重載(overloading)和重寫(overriding)是兩個重要的概念,它們用于處理和繼承現有的代碼。雖然它們都涉及到方法的重復使用,但重載和重寫方式截然不同。
重載方法是指通過為同一個類定義多個方法來滿足同一個名稱的不同參數列表。例如:
public int add(int x, int y) { return x + y; } public int add(int x, int y, int z) { return x + y + z; }
注意:重載方法的方法名稱是相同的,但參數列表是不同的。Java編譯器根據提供的參數列表來選擇調用哪一個方法。
另一方面,重寫方法是指子類通過覆蓋父類的方法來實現不同的方法。例如:
class Animal { public void move() { System.out.println("動物可以移動"); } } class Dog extends Animal { public void move() { System.out.println("狗可以跑和走"); } } public class TestDog { public static void main(String args[]) { Animal a = new Animal(); Animal b = new Dog(); a.move(); b.move(); } }
注意:在這個例子中,Dog類繼承了Animal類,并重寫了父類中的move()方法。它的行為不同于Animal所定義的行為。實例化時,對象b的類型是Dog,但它的引用類型是Animal。當調用b的move()方法時,調用了Dog類中定義的move()方法。
綜上所述,重載和重寫都允許方法的重復使用。重載適用于同一類中重載的方法,而重寫適用于子類中實現的方法。對于Java程序員來說,熟悉這兩種不同的方法非常重要。