天天看點

java基礎之方法的重載(overload)

方法的重載是指一個類中可以定義多個方法名相同,但參數不同的方法。 調用時,會根據不同的參數自動比對對應的方法。

重載的方法,實際是完全不同的方法,隻是名稱相同而已!

構成方法重載的條件:

1.不同的含義:形參類型、形參個數、形參順序不同

2.隻有傳回值不同不構成方法的重載

3.隻有形參的名稱不同,不構成方法的重載

 【示例】方法重載

public class Test21 {
    public static void main(String[] args) {
        System.out.println(add(3, 5));// 8
        System.out.println(add(3, 5, 10));// 18
        System.out.println(add(3.0, 5));// 8.0
        System.out.println(add(3, 5.0));// 8.0
        // 我們已經見過的方法的重載
        System.out.println();// 0個參數
        System.out.println(1);// 參數是1個int
        System.out.println(3.0);// 參數是1個double
    }
    /** 求和的方法 */
    public static int add(int n1, int n2) {
        int sum = n1 + n2;
        return sum;
    }
    // 方法名相同,參數個數不同,構成重載
    public static int add(int n1, int n2, int n3) {
        int sum = n1 + n2 + n3;
        return sum;
    }
    // 方法名相同,參數類型不同,構成重載
    public static double add(double n1, int n2) {
        double sum = n1 + n2;
        return sum;
    }
    // 方法名相同,參數順序不同,構成重載
    public static double add(int n1, double n2) {
        double sum = n1 + n2;
        return sum;
    }
    //編譯錯誤:隻有傳回值不同,不構成方法的重載
    public static double add(int n1, int n2) {
        double sum = n1 + n2;
        return sum;
    }
    //編譯錯誤:隻有參數名稱不同,不構成方法的重載
    public static int add(int n2, int n1) {
        double sum = n1 + n2;         
        return sum;
    }  
}