मैं आज अज्ञात वर्गों के साथ प्रयोग कर रहा था। जब मैं 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