2016-12-01 57 views
-4

如果我想有一個方法在Java中,我可以過載使用float和int

void mymethod(float val) {} 

,另一個

void mymethod (int val) {} 

然後當我打電話mymethod (1.2)將它正確地檢測到第一個是正確的人打電話?

+2

你嘗試過這樣的:

在你的情況下,由於mymethod()方法重載? – namingFailed

+2

[當我們將int參數傳遞給重載方法時發生了什麼,該重載方法將float作爲一個方法的參數,另一個具有double參數](http://stackoverflow.com/questions/24279680/what-happens-when-we -pass-int-arguments-to-the-overloading-method-having-float-a) – Zia

+0

閱讀關於[overriding vs overloading](http://stackoverflow.com/questions/12374399/what-is-the-difference-方法之間的重載和覆蓋) – PeterMmm

回答

0

mymethod(1.2)將查找mymethod(double d)方法,因爲默認情況下,內嵌數值的字面值1.2存儲在double中。

你應該寫:mymethod(1.2F)

在這種情況下,超載將工作和mymethod(float val)將被調用。

重載允許命名具有相同名稱但具有不同參數的多個方法。在編譯時,編譯器選擇與有效參數相匹配的方法。

void mymethod(float val) {} 
void mymethod(int val) {} 
+0

好吧,我會嘗試它 –

相關問題