我今天正在嘗試匿名類。當我做System.out.println(super.x);
,它打印12,當我用System.out.println(x);
它打印4.我認爲super.x
將打印4,並想知道是否有人可以請向我解釋爲什麼這是?匿名類變量
public class AnonClass {
private int x = 1;
public AnonClass(int x) {
this.x = x;
}
public static void main(String[] args) {
AnonClass test = new AnonClass(4);
test.testMethod();
}
public void testMethod() {
AnonClass anon = new AnonClass(12) {
{
System.out.println(super.x); //Prints 12
System.out.println(x); //prints 4
}
};
}
}
我想'super'只與繼承使用。我猜不會。 – Gendarme
@Gendarme你爲什麼猜這個?匿名類繼承它們擴展的類。 –
@AndyTurner嗯,我想我在Java中的知識太淺了。這整個事情超越了我。 – Gendarme