留作日后参考:
/**
* 可变参数问题,一个小案例
* 可变参数的重载和重写问题。
* @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