9.方法重载

在 Java 中,同一个类中的 2 个或 2 个以上的方法可以有同一个名字,只要它们的参数声明不同即可,这种方法就被称为重载(overloaded),此过程称为方法重载( method overloading)。

下面看一个详细的实例。
class overload{
    ///一个普通的方法,不带参数
    void test(){
        System.out.println("No parameters");
    }
    ///重载上面的方法,并且带了一个整型参数
    void test(int a){
        System.out.println("a: " + a);
    }
    ///重载上面的方法,并且带了两个参数
    void test(int a,int b){
        System.out.println("a and b: " + a + " " + b);
    }
    ///重载上面的方法,并且带了一个双精度参数,与上面带一个参数的重载方法不一样
    double test(double a){
        System.out.println("double a: " + a);
        return a*a;
    }
    public static void main(String args[]){
        overload o= new overload ();
        o.test();
        o.test(2);
        o.test(2,3);
        o.test(2.0);
    }
}
运行结果:
No parameters
a:2
a and b:2 3
double a:2.0

通过上面的实例,读者可以看出,重载就是在一个类中,有相同的函数名称,但形参不同的函数。重载的结果,可以让一个程序段,尽量减少代码和减少程序的函数种类。

说明:
  • 参数声明不同的情况包括:个数不同、类型不同、顺序不同等等。特别提示,仅仅参数变量名称不同是不可以的。
  • 跟成员方法一样,构造方法也可以重载。

方法的重载的规则:
  • 方法名称必须相同
  • 参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同)。
  • 方法的返回类型可以相同也可以不相同。仅仅返回类型不同不足以成为方法的重载。

方法重载的实质:

当方法名相同,参数个数不同或参数类型不同时,首先编译器会通过比较头部中的参数类型与实际调用方法中使用值的类型,以选择正确的方法,如没有发现匹配的,则编译器报错,这就叫作重载分辨。

你可能感兴趣的:(9.方法重载)