我试过两种情况如下:Java方法重载:异常行为
void ssss(int b){
System.out.println ("int"+b);
}
void ssss(double b){
System.out.println ("long"+b);
}
,并提出了方法调用作为
ssss(100);
这工作得很好。
void calcAve(double marks1, int marks2) {
System.out.println ("first average");
}
void calcAve(int marks1, double marks2) {
System.out.println ("second average");
}
,并提出了方法调用作为
calcAve(2,3);
这返回一个编译错误:参照calcAve是不明确的。
了解为什么第二个得到编译错误。我的问题是使用相同的比喻,第一个案例也应该返回一个错误,但事实并非如此。为什么??
的方法,因为2可以是有效的int或双 – 2014-09-30 05:53:15
因为你有2种重载方法,可以采取整数。 (double,int)以及(int,double)。像@getlost说的那样,'2'可以被看作是一个'int'和一个'double'。 – TheLostMind 2014-09-30 05:53:37
在第二种情况下,你的数据类型不匹配 – 2014-09-30 05:54:19