在主要方法中的以下程序中實現了一個匿名類,該類實現了接口 TestInt被實例化和打印。Java override懷疑
在打印任何對象時,調用其類的toString方法。但是類Foo也擴展了Object,它有一個公共的String toString()方法,testInt接口也是如此。那麼我們主要覆蓋哪個函數呢?來自Object的還是來自TestInt的?
interface TestInt{ String toString(); }
public class Foo {
public static void main(String[] args) {
System.out.println(new TestInt() {
public String toString() { return "foo"; }
});
}
}
上面的程序編譯並運行良好並生成「foo」作爲輸出。
恩你是不是試圖在這裏實例化一個接口?這段代碼實際上工作嗎? – 2011-04-04 17:57:32
@Richard它正在實例化一個實現TestInt的匿名內部類。 – 2011-04-04 17:58:39
@Richard:我不是一個Java人,但我相信上面的代碼是有效的:他正在實例化一個實現TestInt的* anonymous *類。 – rsenna 2011-04-04 17:59:55