當同一個類別中的多個方法共用相同的名稱但具有不同的參數(類型、數字或兩者)時,就會發生方法重載。方法重載背後的主要想法是增加程式的可讀性。
讓我們來看一個簡單的例子來說明方法重載:
public class Calculator { // Method to add two integers public int add(int a, int b) { return a + b; } // Method to add three integers public int add(int a, int b, int c) { return a + b + c; } // Method to add two doubles public double add(double a, double b) { return a + b; } }
在上面的範例中,Calculator 類別有三個名為 add 的重載方法。每個方法都有不同的參數清單:
當呼叫 add 方法時,會根據傳遞的參數選擇適當的版本。這使得程式碼更直觀、更容易理解。
public class TestCalculator { public static void main(String[] args) { Calculator calc = new Calculator(); System.out.println("Addition of two integers: " + calc.add(10, 20)); // Outputs 30 System.out.println("Addition of three integers: " + calc.add(10, 20, 30)); // Outputs 60 System.out.println("Addition of two doubles: " + calc.add(10.5, 20.5)); // Outputs 31.0 } }
當子類別提供其超類別中已定義的方法的特定實作時,就會發生方法重寫。方法重寫的目的是允許子類別提供其超類別之一已定義的方法的特定實作。
讓我們來看一個方法重寫的實際範例:
class Animal { // Method in the superclass void sound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { // Overriding the sound() method in the subclass @Override void sound() { System.out.println("The dog barks"); } }
在上面的例子中:
當在 Dog 的實例上呼叫 sound 方法時,會執行 Dog 中重寫的方法。
public class TestAnimal { public static void main(String[] args) { Animal myDog = new Dog(); // Upcasting myDog.sound(); // Outputs: The dog barks } }
理解方法重載和方法重寫之間的差異對於編寫有效的 Java 程式碼至關重要。重載允許多個方法具有相同名稱但不同參數,從而增強程式碼的可讀性和可用性。另一方面,重寫使子類別能夠提供超類別中已定義的方法的特定實現,從而促進運行時多態性。
如果您有任何疑問或需要進一步說明,請隨時在下面發表評論。我是來幫忙的!
에서 더 많은 게시물을 읽어보세요. Java에서 오버로딩과 오버라이딩이 무엇인가요
以上是Java中什麼是重載和重寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!