2011-07-26 18 views

回答

5

這些方法具有相同的簽名(標識符+參數列表),這是非法的。

+0

他怎麼樣試圖使用一個變量(可能)尚未初始化,以幫助創建自己(遞歸自引用)? –

3

編譯器不允許這樣做的原因是,並不總是可以推斷出所需的數據類型。例如,Java支持原生值的「拳」爲對象,所以你應該能夠做到這一點:

ArrayList<Object> list = new ArrayList<Object>(); 
list.add(a.sqrt(4)); 

在這樣的代碼,這將是根本不可能的編譯器來找出你是否想調用返回float的方法或返回int的方法。

0

我問我什麼時候是編程初學者。 。讓我自己給出答案。它總是檢查方法的返回類型並相應地調用該方法。如果是

int a1 = sqrt(a);

它會調用返回類型爲整數的方法。

+0

我認爲它的函數的多態行爲,我想(因爲我沒有在mysystem的Java設置),它會調用方法根據用戶所需的響應,因爲你需要在你的答案int詮釋 –

1

如果你有2個方法具有相同的名稱和相同數據類型的參數,那麼java編譯器甚至不會讓你編譯代碼。應該說,方法「sqrt」已經被定義。所以它在java中是非法的。

相關問題