Общая используемая концепция: Анонимные классы
Что вы фактически сделали, так это создали новый подкласс Application, переопределив (или реализовав) метод в подклассе. Поскольку подкласс является безымянным (анонимным), вы не можете создавать дополнительные экземпляры этого класса.
Вы можете использовать эту же технику для реализации интерфейса или создания экземпляра абстрактного класса, если вы реализуете все необходимые методы в своем определении.