超级优先级比外级优先级高吗?
考虑我们有三个类:
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),但找不到任何参考,也许有人指出,但我误解了一些条款?