您的位置:首页 > 编程语言 > Java开发

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

2012-09-05 17:23 573 查看
留作日后参考:

/**
* 可变参数问题,一个小案例
* 可变参数的重载和重写问题。
* @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://orangleliu.blog.51cto.com/2554001/982866
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: