Java——方法的重载

 

方法的重载就是在同一个类中可以同时存在多个同名的方法,只要这些方法的参数或类型不同。方法重载可以使两个方法的返回值不同,但只有返回值还不足以区分两个方法的重载,还需要通过参数的类型、个数、长度来设定。一个简单地例子

 

public class OverLoadTest {

    public static int add(int a ,int b){
        return a+b;
    }
    public static double add(double a ,double b){
        return a+b;
    }
  public static void main(String[] args) {
        System.out.println("调用add(int,int)方法:"+add(1,2));
        System.out.println("调用add(double,double)方法:"+add(1.1,2.3));
  }
}

上面的两个方法的名称都为add,都是要实现两个数相加的结果,但其参数类型一个是int类型,一个是double类型,并且其返回值类型也不同,因此这两个add方法就形成了重载关系。重载的情况可以有很多种,以此例子还可以扩充一下:

 

 1 public class OverLoadTest {
 2 
 3     public static int add(int a ,int b){
 4         return a+b;
 5     }
 6     public static double add(double a ,double b){
 7         return a+b;
 8     }
 9     public static int add(int a){
10         return a;
11     }
12     public static double add(int a,double b){
13         return a+b;
14     }
15     public static int add(double a ,int b){
16         return 1;
17     }
18     public static int add(int...a){
19         int sum=0;
20         for(int i=0;i<a.length;i++)
21             sum=sum+a[i];
22         return sum;
23     }
24     public static void main(String[] args) {
25         System.out.println("调用add(int,int)方法:"+add(1,2));
26         System.out.println("调用add(double,double)方法:"+add(1.1,2.3));
27         System.out.println("调用add(int)方法:"+add(5));
28         System.out.println("调用add(int)方法:"+add(1.6,2));
29         System.out.println("调用add(int)方法:"+add(1,2.5));
30         System.out.println("调用不定长add方法:"+add(6,6,6,6,6,6));
31     }
32 
33 }

我们可以使用“...”表示不定长的参数,其实就是一个未指定长度的数组,其长度表示a.length,给它一个int型变量,对于这种情况,我们要使用循环语句,返回其和值。基于前面的知识,我们在做这个案例的时候,还需注意数据类型转换的问题,低级类型向高级类型转换,系统会自动执行,但如果高级类型向低级类型转换,需使用强制类型转换,若12行第四个add方法,我们给它的类型为int,系统就会报错,方法中最大类型为double。

 

posted @ 2014-06-08 00:26  charmingyj  阅读(349)  评论(0编辑  收藏  举报