-4
如果我想有一個方法在Java中,我可以過載使用float和int
void mymethod(float val) {}
,另一個
void mymethod (int val) {}
然後當我打電話mymethod (1.2)
將它正確地檢測到第一個是正確的人打電話?
如果我想有一個方法在Java中,我可以過載使用float和int
void mymethod(float val) {}
,另一個
void mymethod (int val) {}
然後當我打電話mymethod (1.2)
將它正確地檢測到第一個是正確的人打電話?
mymethod(1.2)
將查找mymethod(double d)
方法,因爲默認情況下,內嵌數值的字面值1.2
存儲在double
中。
你應該寫:mymethod(1.2F)
在這種情況下,超載將工作和mymethod(float val)
將被調用。
重載允許命名具有相同名稱但具有不同參數的多個方法。在編譯時,編譯器選擇與有效參數相匹配的方法。
void mymethod(float val) {}
void mymethod(int val) {}
好吧,我會嘗試它 –
你嘗試過這樣的:
在你的情況下,由於
mymethod()
方法重載? – namingFailed[當我們將int參數傳遞給重載方法時發生了什麼,該重載方法將float作爲一個方法的參數,另一個具有double參數](http://stackoverflow.com/questions/24279680/what-happens-when-we -pass-int-arguments-to-the-overloading-method-having-float-a) – Zia
閱讀關於[overriding vs overloading](http://stackoverflow.com/questions/12374399/what-is-the-difference-方法之間的重載和覆蓋) – PeterMmm