留作日后参考:
- /**
- * 可变参数问题,一个小案例
- * 可变参数的重载和重写问题。
- * @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;
- }
- }
转载于:https://blog.51cto.com/orangleliu/982866