Могу ли я переопределить новый экземпляр объекта класса? - PullRequest
0 голосов
/ 19 марта 2012

Я не уверен, как он называется, но вы можете легко переопределить методы с помощью:

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
    }
};

Примечание: я задаю этот вопрос, потому что я специально хочу переопределить один метод в текущем классе пользовательского интерфейса свинга для компонента, возвращаемого UIManager.getUI(component).getClass() в этом коде .

1 Ответ

4 голосов
/ 19 марта 2012

В первом фрагменте кода вы создаете анонимный подкласс Apple, который переопределяет метод devour(), а затем создаете экземпляр foo как экземпляр этого анонимного подкласса.

Во втором примере и в вашей цели вы не можете изменить класс / тип ссылки на объект после того, как этот объект уже существует .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...