Ниже приведен код вывода 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");
}
}
}