2012-03-19 79 views
0

我不知道它叫什麼,但你可以很容易地與覆蓋方法:我可以覆蓋類對象的新實例嗎?

Apple foo = new Apple(){ 
    public void devour(){ 
     //Devour apple 
    } 
}; 

你可以得到的getClass對象的類。

是否有可能做這樣的事情:

Apple a = new Apple(); 
Class<? extends Apple> B = a.getClass(); 
Apple c = new B(){ 
    public void polish(){ 
     //Polish apple 
    } 
}; 

側面說明:我問這個問題,因爲我特別想重寫當前擺UI類的單一方法,通過UIManager.getUI(component).getClass()返回的組件在this code

回答

4

在第一個代碼片段中,您將創建一個Apple的匿名子類,它將覆蓋devour()方法,然後將foo實例化爲此匿名子類的一個實例。

在第二個示例和您的目標中,在對象已存在之後,不能更改對象引用的類/類型

相關問題