Что такое "анонимные классы", где они применяются

Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.

Анонимные классы имеют несколько ограничений:

  • Их использование разрешено только в одном месте программы - месте его создания;
  • Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
  • Реализует лишь методы своего интерфейса или суперкласса, т. е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:

  • создания объекта функции (function object), например, реализация интерфейса Comparator;
  • создания объекта процесса (process object), такого как экземпляры классов ThreadRunnable и подобных;
  • в статическом методе генерации;
  • инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.

Oct. 22, 2023, Источник

Примеры ответов: