версия.

ли супер приоритет выше, чем внешний класс?

Предположим, у нас есть три класса:

ClassAClassBАнонимный класс в ClassB, который расширяет ClassA

ClassA.java:

public class ClassA {
    protected String var = "A Var";

    public void foo() {
        System.out.println("A foo()");
    }
}

ClassB.java:

public class ClassB {
    private String var = "B Var";

    public void test() {

        new ClassA() {
            public void test() {
                foo();
                System.out.println(var);
            }
        }.test();
    }

    public void foo() {
        System.out.println("B foo()");
    }
}

Когда я звонюnew ClassB().test()Я получаю следующий вывод (что вполне ожидаемо):

A foo()
A Var

Вопрос: Определено ли где-то, что внутренний класс берет (методы и члены) сначала из суперкласса, а затем из внешнего класса, или это так?JVM зависит от реализации компилятора? Я просмотрел JLS (§15.12.3), но не смог найти для этого никакой ссылки, может быть, там указано, но я неправильно понял некоторые термины?

Ответы на вопрос(2)

Ваш ответ на вопрос