什么是重载?重载的作用?

一、什么是重载?

重载,从简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。在java中同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。这种情况下,该方法就被称为重载,这个过程称为方法重载 ,通俗的讲就是省了给method命名了.差不多的都用一个.

例如:

  public class OverloadDemo {
       void test(){                                   //test()方法第一次重载,没有参数
              System.out.println("No parameters");
       }
       void test(int a){                             //test()方法第二次重载,一个整型参数
              System.out.println("a: "+a);
       }
       void test(int a,int b){                        //test()方法第三次重载,两个整型参数
              System.out.println("a and b: "+a+" "+b);
       }
       double test(double a){                     //test()方法第四次重载,一个双精度型参数
              System.out.println("double a: "+a);
              return a*a;                              //返回a*a的值
       }
}

结果:

 public class Overload {
       public static void main(String args[]){
              OverloadDemo ob=new OverloadDemo();
              double result;
              ob.test();            //定义的是test()方法
              ob.test(10);             //定义的是test(int a)方法
              ob.test(10,20);            //定义的是test(int a,int b)方法
              result=ob.test(123.23);       //定义的是test(double a)方法
              System.out.println("result of ob.test(123.23): "+result);   //输出result的值
       }
}
运行结果:    No parameters
a: 10
a and b: 10 20
double a: 123.23
result of ob.test(123.23): 15185.6329

 

二、重载的作用?

 1. 方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。重载比if...else要优雅,减少了if...else部分的代码。

 2. 重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。

你可能感兴趣的:(【59】Java)