方法的重载

60 阅读1分钟

方法相互之间的调用:

public class Test1 {
    public static void main (String[] args) {
        sayLoveU();
        add(1, 2, 3);
    }

    public static void sayLoveU () {
        System.out.println("我爱你");
    }

    public static int add (int a, int b, int c) {
        int sum = a + b + c;
        System.out.println(sum);
        return sum;  // return 有两个作用:返回值,结束方法执行;
    }
}

方法的重载

重载:一个类中可以定义多个名称相同,但形式参数列表不同的方法;

重载的方法是完全不同的方法,只是名称相同而已;

构成重载的条件:

  1. 形参列表不同的含义:形参类型、形参个数、形参顺序不同;

  2. 只有返回值不同不构成方法的重载;

    例如: int a(String str) 与 void a(String str) 不构成方法的重载

  3. 只有形参名称不同,不构成方法的重载;

    例如:int a(String str) 与 int a(String s) 不构成方法的重载;

public class Test1 {
    public static void main (String[] args) {
        System.out.println(add(1, 2));
        System.out.println(add(1, 2, 3));
        System.out.println(add(1.0, 2));
    }

    // 求和的方法
    public static int add (int a, int b) {
        int sum = a + b;
        return sum;
    }

    // 方法名字相同,但是个数不同,构成重载
    public static int add (int a, int b, int c) {
        int sum = a + b + c;
        return sum;
    }

    // 方法名字相同,但是形参类型不同,构成重载
    public static double add (double a, int b) {
        double sum = a + b;
        return sum;
    }

    // 编译错误,如果只是返回值不同, 不可构成重载
//    public static double add (int a, int b) {
//        double sum = a + b;
//        return double;
//    }
    // 编译错误,如果只是形参名字不同,不可构成重载
//    public static int add (int n, int k) {
//        int sum = n + k;
//        return sum;
//    }
}