我可以覆盖类对象的新实例吗?

时间:2012-03-19 14:02:52

标签: java oop inheritance

我不确定它的名称,但您可以使用以下方法轻松覆盖方法:

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()返回的组件的单个方法。

1 个答案:

答案 0 :(得分:4)

在第一个代码片段中,您创建了一个Apple的匿名子类,它覆盖了devour()方法,然后将foo实例化为此匿名子类的实例。

在第二个示例中,在您的目标中,您无法在该对象已存在后更改对象引用的类/类型