运行输出:
OverloadingCalculation3.java:7: error: reference to sum is ambiguous
obj.sum(20,20);//now ambiguity
^
both method sum(int,long) in OverloadingCalculation3
and method sum(long,int) in OverloadingCalculation3 match
1 error
解释:定义了两个具有相同名称的方法,即 sum
。 第一种方法接受 integer
和 long
类型,而第二种方法接受 long
和 integer
类型。 传递的参数是 a = 20
,b = 20
。无法确定将调用哪个方法,因为int
字面量和long
字面量之间没有明确的区别。这就是模棱两可的情况。 因此,编译器会抛出错误。