2012-10-15 45 views

回答

1

IntegertoString()是被調用的。 你可以很容易地用你自己的對象來證明。

+0

我不能,我把Eclipse中的變量aThing後面的「dot」'。「,並用'toString():String - Object'顯示下拉菜單.... !!! – user133466

+0

只需編寫你自己的任何對象,覆蓋toString()就可以看到它。不要讓日食欺騙你,這是編譯器在這裏做的。 – Frank

1

子類上的一個被調用,所以在Integer上的那個。

3

IntegertoString()將被調用。方法調用總是基於對象類型而不是引用類型來決定。

Steve Kuo評論道:除了靜態方法。

+0

除靜態方法 –

+0

@SteveKuo:是的,這是正確的。 – kosa

1

toString()在整數類中被執行,因爲它是實例化類的類型。

1

Integer'stoString被調用。實現被調用的方法總是由對象本身的運行時類型(類)決定的,而不是由它分配給的變量的類型決定的。在下面的代碼中,兩個調用都是等價的。

Integer i = Integer.valueOf(5); 
Object o = i; 

i.toString(); // "5" 
o.toString(); // "5" 

表現這種方式的方法被稱爲Virtual Methods。 Java中的所有非靜態方法都是虛擬的。它們提供Polymorphism的關鍵機制之一。