为什么我在下面的代码中没有得到对方法的引用是模棱两可的?
why i am not getting reference to method is ambiguous in the following code?
我有 base 或 parent class 重载了 method1(int ,int) 和 method1(double,double)
public class Sub extends Base{
@overridden
method1(double,double) {`some manipulation`}
main{
method1(1,1); //i am not getting Compile Error(reference to method is ambiguous)!in java
}
}
like so but what is the case here?
public class 测试3{
public static void JavaHungry(Exception e) {}
public static void JavaHungry(ArithmeticException e) {}
public static void JavaHungry(String s) {}
public static void main(String[] args) {
JavaHungry(null);`refernce to method is ambiguous`
}
}
在Java中,int
由1
表示,double
由1.0
表示。
因此,当您调用 method1(1, 1)
时,它会调用带有 int 参数的方法。
对于Java编译器,这没有歧义。
简而言之,以下是当您传递这些类型的值时将发生的调用。
method1(1, 1)
--> 整数, 整数
method1(1.0, 1)
--> double, double(自动将 1 转换为 double 的编译器)
method1(1.0, 1.0)
--> 双倍,双倍
我有 base 或 parent class 重载了 method1(int ,int) 和 method1(double,double)
public class Sub extends Base{
@overridden
method1(double,double) {`some manipulation`}
main{
method1(1,1); //i am not getting Compile Error(reference to method is ambiguous)!in java
}
}
like so but what is the case here?
public class 测试3{
public static void JavaHungry(Exception e) {}
public static void JavaHungry(ArithmeticException e) {}
public static void JavaHungry(String s) {}
public static void main(String[] args) {
JavaHungry(null);`refernce to method is ambiguous`
}
}
在Java中,int
由1
表示,double
由1.0
表示。
因此,当您调用 method1(1, 1)
时,它会调用带有 int 参数的方法。
对于Java编译器,这没有歧义。
简而言之,以下是当您传递这些类型的值时将发生的调用。
method1(1, 1)
--> 整数, 整数
method1(1.0, 1)
--> double, double(自动将 1 转换为 double 的编译器)
method1(1.0, 1.0)
--> 双倍,双倍