Что такое анонимный класс

«Что такое анонимный класс» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Анонимный класс — это локальный класс без имени, объявляемый и создаваемый одновременно в одном выражении. Используется для разовой реализации интерфейса или расширения класса без создания отдельного файла.

Особенности:

  • Не имеет имени (определяется компилятором).
  • Может реализовывать только один интерфейс или наследовать один класс.
  • Доступ к переменным внешнего класса требует 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-преобразованиями.