我試過兩種情況如下: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