Java可变参数小案例和使用易错点

留作日后参考:

/**  
 * 可变参数问题,一个小案例  
 * 可变参数的重载和重写问题。  
 * @author lzz  
 *  
 */ 
public class VariableParaTest {  
    public static void main(String[] args) {  
        int a = VariableParaTest.add(1, 2, 3, 4 ,5 ,6);  
        System.out.println(a);  
          
        /*可变参数的这种重写和重载应当是我们编码过程中需要避免的*/ 
        VariableParaTest vp=new SubVariablePara();  
        vp.add(3, 4, 5);   //正确   这里是把参数类表传给父类,然后才调用子类的方法  
        System.out.println(vp.add(2, 4, 5));  
        SubVariablePara vp1=new SubVariablePara();  
        vp1.add(2, 3);   //报错,这里直接使用SubVariablePara类,当然不可以把一个参数传给一个数组  
    }  
      
    //可变参数必须放到整个参数列表的最后一个参数位置,这时候此种类型的参数可以传任意个到  
    //到方法中,在方法中只要把可变参数当成数组来出来就好了。  
    public static int add(int a,int... as){  
        int sum=0;  
        for(int i: as){  
            sum+=i;  
        }  
        return sum;       
    }  
      
      
    //Duplicate method add(int, int[]) in type VariableParaTest,这种情况是无法进行重载的  
/*  public static int add(int a,int[] as){  
          
    }*/ 
}  
 
class SubVariablePara extends VariableParaTest{  
      
    //以下的两种方法都可以重写,但是不可以加入注解@override   
/*  public static int add(int a,int... as){  
        return 1;  
    }*/ 
    public static int add(int a,int[] as){  
        return 1;  
    }  
} 

本文出自  orangleliu笔记本  博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/38309311


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值