/*
Вспомним наследование
*/

public class Solution extends C implements JustAnInterface{
    private class A {
        protected String value = "A";

        public A() {
            System.out.print(value);
        }
    }

    private A a = new A() {
        { //у анонимных классов нет своих конструкторов, но что-то можно сделать в блоке инициализации класса
            value = "Y";

            // решил проверить что выведет
                System.out.println("\n" + super.getClass());
            // эта строка выводит: class com.javarush.task.task24.task2411.Solution$1
            // Почему??? Ведь super для данного внутреннего класса это класс A

            if (super.getClass().getName().contains(".Solution$")) {
                System.out.print(value);
            }
        }
    };

    public Solution() {
        System.out.print("S");
    }

    public static void main(String[] args) {
        new Solution();
    }
}
Почему выражение super.getClass()); указывает не на предка, как я ожидал? Ведь super же! И вызываем мы его из внутреннего класса же! А оно выводит: class com.javarush.task.task24.task2411.Solution$1 Это ведь имя анонимного класса, присвоенное ему компилятором, я не ошибаюсь?