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

java中不定长参数方法与定长参数方法的重载

2015-12-03 15:59 246 查看
在一个类中定义(重载)两个方法名、返回值一样,而一个方法中传入不定长参数,另一个传入的是定长参数。当在main中调用该方法,并且传入参数满足两个方法时,会使用的是哪一个方法呢?

public class OverLoad{
public static void add(int...a){
System.out.println("不定长参数");
}

public static void add(int a){
System.out.println("定长参数");
}

public static void main(String[] args) {
add(1);
}
}


如代码所示,当调用add(1)时两个方法均满足,运行,结果表面调用的是定长参数的方法。

public class OverLoad{
public static void add(int...a){
System.out.println("不定长参数");
}

/*public static void add(int a){
System.out.println("定长参数");
}*/

public static void main(String[] args) {
add(1);
}
}
接下来注释掉定长参数的方法,运行,结果表面调用的是不定长参数的方法。

初步结论:当类中重载两个除参数(一个是定长参数,另一个是不定长参数,并且类型相同)以外都相同的方法,调用该方法,并且传入的参数两个方法都可以满足时,会优先使用定长参数方法,当发现没有定长方法时,将传入的参数转成数组以满足不定长参数方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: