Ниже приведен код вывода middle. Может ли кто-нибудь объяснить подробно, как это происходит?
Это потому, что объявление "внутренней" версии class A происходит после создания экземпляра class A в методе go()?
class A {
void m() {
System.out.println("outer");
}
}
public class MethodLocalVSInner {
public static void main(String[] args) {
new MethodLocalVSInner().go();
}
void go() {
new A().m();
class A {
void m() {
System.out.println("inner");
}
}
}
class A {
void m() {
System.out.println("middle");
}
}
}