首頁 > Java > java教程 > 主體

Java中什麼是重載和重寫

Susan Sarandon
發布: 2024-09-27 10:37:30
原創
725 人瀏覽過

What are overloading and overriding in Java

1. 什麼是Java中的方法重載?

當同一個類別中的多個方法共用相同的名稱但具有不同的參數(類型、數字或兩者)時,就會發生方法重載。方法重載背後的主要想法是增加程式的可讀性。

1.1 方法重載的特點

  • 相同的方法名稱:所有重載的方法必須具有相同的名稱。
  • 不同的參數清單:方法的參數數量或型別必須不同。
  • 編譯時多態性:方法重載是 Java 中編譯時(或靜態)多態性的一個範例。

1.2 方法重載範例

讓我們來看一個簡單的例子來說明方法重載:

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;
    }
}
登入後複製

1.3 範例說明

在上面的範例中,Calculator 類別有三個名為 add 的重載方法。每個方法都有不同的參數清單:

  • 第一個方法需要兩個 int 參數。
  • 第二種方法需要三個int參數。
  • 第三種方法需要兩個double參數。

當呼叫 add 方法時,會根據傳遞的參數選擇適當的版本。這使得程式碼更直觀、更容易理解。

1.4 演示和結果

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
    }
}
登入後複製

2. Java中的方法重寫是什麼?

當子類別提供其超類別中已定義的方法的特定實作時,就會發生方法重寫。方法重寫的目的是允許子類別提供其超類別之一已定義的方法的特定實作。

2.1 方法重寫的特點

  • 相同的方法簽章:子類別中的方法必須與超類別中的方法具有相同的名稱、傳回類型和參數。
  • 運行時多態性:方法重寫是 Java 中運行時(或動態)多態性的範例。
  • @override 註解 :使用 @override 註解來指示某個方法正在重寫超類別方法是一個很好的做法。

2.2 方法重寫範例

讓我們來看一個方法重寫的實際範例:

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");
    }
}
登入後複製

2.3 範例說明

在上面的例子中:

  • Animal 類別有一個名為 sound 的方法,用來列印一般訊息。
  • Dog 類別擴展 Animal 並重寫 sound 方法以提供特定訊息。

當在 Dog 的實例上呼叫 sound 方法時,會執行 Dog 中重寫的方法。

2.4 演示和結果

public class TestAnimal {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Upcasting
        myDog.sound(); // Outputs: The dog barks
    }
}
登入後複製

3. 重載與重寫:主要區別

3.1 定義

  • 重載 :涉及同一個類別中具有相同名稱但參數不同的多個方法。
  • 重寫:涉及在子類別中重新定義已在超類別中定義的方法。

3.2 多態性類型

  • 重載:代表編譯時多態性。
  • 重寫:代表運行時多態性。

3.3 綁定

  • 重載:方法綁定在編譯時發生。
  • 重寫:方法綁定在運行時發生。

3.4 使用案例

  • 重載:當方法使用不同類型或數量的參數執行類似功能時使用。
  • 重寫:當子類別需要為超類別中已定義的方法提供特定實作時使用。

4. 結論

理解方法重載和方法重寫之間的差異對於編寫有效的 Java 程式碼至關重要。重載允許多個方法具有相同名稱但不同參數,從而增強程式碼的可讀性和可用性。另一方面,重寫使子類別能夠提供超類別中已定義的方法的特定實現,從而促進運行時多態性。

如果您有任何疑問或需要進一步說明,請隨時在下面發表評論。我是來幫忙的!

에서 더 많은 게시물을 읽어보세요. Java에서 오버로딩과 오버라이딩이 무엇인가요

以上是Java中什麼是重載和重寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!