2017-03-04 17 views
0

在下面的程序中,我試圖使用Wrapper類的靜態'toString'方法將Numbers轉換爲字符串。Java Wrapper類的'toString'方法是否被重載,或者它是一個在不同類中具有不同定義的抽象方法?

class NumberToStringConversion 
{ 
    public NumberToStringConversion() 
{ 
    String I=Integer.toSring(i); 
    String F=Float.toString(f); 
    String D=Double.toString(d); 
    String L=Long.toString(l); 
} 
} 

這裏,Integer,Float,Double和Long是包裝類,它們包裝了各自的基元數據類型。它看起來像toString方法存在於所有上述包裝類中。這是否意味着toString方法過載?或者它是不同類中定義不同的方法嗎?

+0

號他們對不同類別的不同的方法,但碰巧有相同的名稱。 – Jeremy

回答

5

你調用的toString()方法是靜態方法。繼承不適用於靜態方法。每個包裝類都有靜態和非靜態的toString()方法。靜態的是彼此無關的。非靜態的覆蓋Object.toString()

Integer,例如,有三個toString()方法:

String toString(); // overrides Object.toString() 
static String toString(int i); 
static String toString(int i, int radix); 
+0

謝謝約翰。我明白,使用類名「Integer.toString」調用靜態方法,並且即使該類從未實例化並且沒有創建對象也可以使用。那麼,這只是爲了方便起見,所有這些方法都有相同的名稱? – Sivani

+0

是的,它的一致性。 –

相關問題