Задачу решил, но остался не понятен вопрос. Если во внутреннем классе А написать
System.out.println(getClass().getName());
то выдаст: com.javarush.task.task24.task2411.Solution$1 но если написать то же самое в анонимном классе наследованном от класса А
private A a = new A() {
       {
System.out.println(getClass().getName());
}
    };
то он тоже выдаст: com.javarush.task.task24.task2411.Solution$1 Что как бы не логично?! Если бы он соответственно выдавал com.javarush.task.task24.task2411.Solution$А com.javarush.task.task24.task2411.Solution$1 то было бы логично, что внутренний класс и анонимный-внутренний наследованный от него компилируется в 2 разных класса, а тут получается в один? Это вообще как, это же разные классы.