Ich habe heute mit anonymen Klassen experimentiert. Wenn ich System.out.println(super.x);
tue, druckt es 12, und wenn ich System.out.println(x);
verwende, druckt es 4. Ich dachte super.x
würde 4 drucken und fragte mich, ob jemand mir bitte erklären könnte, warum das ist?Anonyme Klassenvariablen
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
}
};
}
}
Ich dachte, 'super' nur mit Vererbung verwendet wurde. Ich denke nicht. – Gendarme
@Gandarme warum denkst du das? Anonyme Klassen erben von der Klasse, die sie erweitern. –
@AndyTurner Nun, ich denke, mein Wissen in Java ist zu ... flach. Diese ganze Sache ist jenseits von mir. – Gendarme