【发布时间】:2014-04-08 16:00:12
【问题描述】:
我认为这会是一个有点愚蠢的问题,但我不确定为什么会这样。
代码;
public class OverloadingTest {
public static int sum(int ...a){
int sum=0;
for(int i : a){
sum += i;
}
System.out.print("this is variant args//");
return sum;
}
public static double sum(double a, double b) {
return a + b;
}
public static void main(String[] args) {
System.out.println(sum(1.5, 2.5));
System.out.println(sum(10, 20));
System.out.println(sum(10, 20,30));
}
}
我预期的结果;
4.0
this is variant args//30
this is variant args//60
控制台中的实际结果:
4.0 30.0 this is variant args//60
我不确定为什么sum(10, 20) 30.0 的结果,而不是变量参数的 30。
【问题讨论】:
-
你应该看看this answer