外部与超级级别
2022-09-04 04:23:29
超级类是否具有比外部类更高的优先级?
假设我们有三个类:
- A类
- B类
- B 类中扩展类 A 的匿名类
A类.java:
public class ClassA {
protected String var = "A Var";
public void foo() {
System.out.println("A foo()");
}
}
B类.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),但找不到任何参考,也许它被指出了,但我误解了一些术语?