Цель анонимного внутреннего класса - расширить и создать экземпляр существующего класса или реализовать один интерфейс за один шаг.
Его ограничения могут быть получены из приведенного выше:
- Может быть расширен только один неконечный класс или реализован один интерфейс.
- Доступны только конечные локальные переменные метода включения. (Это связано с тем, что нормальные локальные переменные будут вне области действия к тому времени, когда будут вызваны любые методы внутреннего класса.)
- Вы не можете определить конструктор. (У класса нет имени.)
Если вам нужно несколько интерфейсов, вы можете использовать локальный внутренний класс, который похож на обычный внутренний класс, со своим собственным именем, но определенный в методе. Я должен признать, что никогда не видел, чтобы это использовалось на практике, и я вижу очень мало причин для того, чтобы кто-то делал это, надеюсь, кто-то придумает пример.