留作日后参考:

 

  1. /**  
  2.  * 可变参数问题,一个小案例  
  3.  * 可变参数的重载和重写问题。  
  4.  * @author lzz  
  5.  *  
  6.  */ 
  7. public class VariableParaTest {  
  8.     public static void main(String[] args) {  
  9.         int a = VariableParaTest.add(1234 ,5 ,6);  
  10.         System.out.println(a);  
  11.           
  12.         /*可变参数的这种重写和重载应当是我们编码过程中需要避免的*/ 
  13.         VariableParaTest vp=new SubVariablePara();  
  14.         vp.add(345);   //正确   这里是把参数类表传给父类,然后才调用子类的方法  
  15.         System.out.println(vp.add(245));  
  16.         SubVariablePara vp1=new SubVariablePara();  
  17.         vp1.add(23);   //报错,这里直接使用SubVariablePara类,当然不可以把一个参数传给一个数组  
  18.     }  
  19.       
  20.     //可变参数必须放到整个参数列表的最后一个参数位置,这时候此种类型的参数可以传任意个到  
  21.     //到方法中,在方法中只要把可变参数当成数组来出来就好了。  
  22.     public static int add(int a,int... as){  
  23.         int sum=0;  
  24.         for(int i: as){  
  25.             sum+=i;  
  26.         }  
  27.         return sum;       
  28.     }  
  29.       
  30.       
  31.     //Duplicate method add(int, int[]) in type VariableParaTest,这种情况是无法进行重载的  
  32. /*  public static int add(int a,int[] as){  
  33.           
  34.     }*/ 
  35. }  
  36.  
  37. class SubVariablePara extends VariableParaTest{  
  38.       
  39.     //以下的两种方法都可以重写,但是不可以加入注解@override   
  40. /*  public static int add(int a,int... as){  
  41.         return 1;  
  42.     }*/ 
  43.     public static int add(int a,int[] as){  
  44.         return 1;  
  45.     }