Ответ
Анонимный класс — это локальный класс без имени, объявляемый и создаваемый одновременно в одном выражении. Используется для разовой реализации интерфейса или расширения класса без создания отдельного файла.
Особенности:
- Не имеет имени (определяется компилятором).
- Может реализовывать только один интерфейс или наследовать один класс.
- Доступ к переменным внешнего класса требует
finalили effectively final (Java 8+).
Пример:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Clicked!", Toast.LENGTH_SHORT).show();
}
});
Где используется:
- Обработчики событий (клики, колбэки).
- Разовые реализации интерфейсов (например,
Runnable).
В Kotlin заменяется лямбдами и SAM-преобразованиями.