[java] java 可变长参数

可变长参数:

package com.wa.xwolf.front.pojo;

/**
 * Created by xwolf on 2015/9/1.
 */
public class VarArgs {

    public void get(int a,String... args){
       String s ="";
        //可以将可变长参数作为数组来处理
        for (String b:args){
            s= s+b;
        }

        for (int i=0;i<args.length;i++){
            s +=args[i];
        }
    }
    /**
     * 只能有一个可变长参数必须作为最后一个参数
     */
   // public void set(String... args,int a){

  //  }



    static class Father{

       void eat(String... foods){
          System.out.println(foods[0]);
        }

        int save(int... ints){
            System.out.println(ints[0]);
          return ints[1];
        }

        void drink(String[] juces){
           System.out.println(juces[1]);
        }

    }

   static class son extends  Father{

        @Override
        void eat(String... foods) {
            super.eat(foods);
        }
       /**
        * 此处编译异常,方法已经存在
        */
      // void eat(String[] foods){

      // }

       /**
        * 可变长参数替换数组形式
        * @param juces
        */
       @Override
       void drink(String... juces) {
           super.drink(juces);
       }

       @Override
        int save(int[] args) {
            return super.save();
        }
    }

    public static  void main(String[] args){
        son son = new son();
          son.eat("1","2","3");

        son.drink("water","coco","tea");

        /**
         * 此处编译正常,运行异常 参看图3
         */
        son.save(12,21);
    }
}

出现的错误:

1.一个方法中只能有一个可变长参数且必须为最后一个参数。

2.可变长参数和数组的冲突

3.

为毛??

save()方法出错,但是drink() 却能正常执行。

posted @ 2015-09-01 10:10  snow__wolf  阅读(164)  评论(0)    收藏  举报