我不确定它的名称,但您可以使用以下方法轻松覆盖方法:
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
}
};
旁注:我问的是这个问题,因为我特别想在当前的swing UI类中覆盖this code中由UIManager.getUI(component).getClass()
返回的组件的单个方法。
答案 0 :(得分:4)
在第一个代码片段中,您创建了一个Apple
的匿名子类,它覆盖了devour()
方法,然后将foo
实例化为此匿名子类的实例。
在第二个示例中,在您的目标中,您无法在该对象已存在后更改对象引用的类/类型。