версия.
ли супер приоритет выше, чем внешний класс?
Предположим, у нас есть три класса:
ClassAClassBАнонимный класс в ClassB, который расширяет ClassAClassA.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), но не смог найти для этого никакой ссылки, может быть, там указано, но я неправильно понял некоторые термины?