Страницы

Поиск по вопросам

пятница, 19 апреля 2019 г.

Переопределение метода экземпляра класса

Мне нужно переопределить метод класса Button
public class Button { public void action(){} }
Я пробовал инициализировать так:
Button home = new Button(){ public void action() { // TODO some code } }
Но ничего не получилось. Нужна помощь.


Ответ

Но ничего не получилось.
А в чем заключается это «не получилось»? Если при вызове переопределенного метода Вы получаете cannot resolve method, то, может быть, Вы импортировали вовсе не Ваш класс Button, а одноименный класс из другого пакета, который данного метода не имеет?
При создании экземпляра некоторого класса Вы можете переопределить его методы, в итоге получите анонимный класс (а точнее, субкласс).
Пример:
class Button { public void action() { System.out.println("Basic implementation"); } }
public class Main {
public static void main(String[] args) { Button button = new Button() { @Override public void action() { System.out.println("Overridden implementation"); } };
button.action(); } }
Вывод на консоль:
Overridden implementation
Если же класс с переопределенными методами будет использован многократно, то целесообразно создать именованный класс.

Комментариев нет:

Отправить комментарий