我今天正在尝试匿名类。当我做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