Мне нужно переопределить метод класса 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
Если же класс с переопределенными методами будет использован многократно, то целесообразно создать именованный класс.
Комментариев нет:
Отправить комментарий