超級比外部類別具有更高的優先級嗎?外部與超級類別
考慮,我們有三類:
- ClassA的
- ClassB的
- 匿名類ClassB的擴展ClassA的
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),但找不到任何參考,可能是在那裏指出的,但我誤解了一些術語?
我試圖按照JLS中的邏輯,但沒有我的咖啡;-)從經驗我會說:我**漂亮**確定這是很好的指定和**不* *依賴於實現。 *如果*它是實現相關的,那麼它將取決於編譯器,而不取決於JVM,因爲該決定是在編譯時完成的。 – 2011-05-03 09:11:29
@Joachim - 我錯誤地寫了JVM,謝謝指出。 – MByD 2011-05-03 09:17:27