Java是一門面向對象編程語言,多態是Java面向對象編程的三大特性之一,其中包括重寫和重載兩種方式。
重寫是指子類重新定義(重寫)了父類中的某個方法,具有相同名稱、參數列表和返回類型,但是子類中的方法實現可能和父類中的不同。使用關鍵字@Override來標記一個方法是重寫父類中的方法。
public class Animal { public void move() { System.out.println("Animal is moving..."); } } public class Dog extends Animal { @Override public void move() { System.out.println("Dog is running..."); } } public class Test { public static void main(String[] args) { Animal animal = new Dog(); animal.move(); // 輸出結果為Dog is running... } }
重載是指在同一個類中定義了多個同名方法,但是它們具有不同的參數列表,即不同的方法名簽名。在程序調用時,根據實參的類型和數量來確定使用哪個方法。具體來說,Java編譯器會根據方法名加上參數的數據類型和個數來判斷要調用哪一個方法。
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; } } public class Test { public static void main(String[] args) { Calculator calculator = new Calculator(); System.out.println(calculator.add(1,2)); // 輸出結果為3 System.out.println(calculator.add(1,2,3)); // 輸出結果為6 } }
重寫和重載都是Java中實現多態的方式之一。多態可以使得程序更加靈活,提高了程序的擴展性和復用性。