मैं जावा सीख रहा हूं। मुझे विरासत में संदेह है। जब कोई बच्चा वर्ग अभिभावक वर्ग और अभिभावक वर्ग को बढ़ाता है तो एक विधि होती है जो माता-पिता में घोषित एक आवृत्ति चर को संदर्भित करती है। लेकिन बाल वर्ग डिन इस विधि को ओवरराइड करता है और माता-पिता के समान नाम के साथ इंस्टेंस वैरिएबल घोषित करता है। इस मामले में बच्चे से इंस्टेंस वैरिएबल का उल्लेख किया जाएगा या माता-पिता को संदर्भित किया जाएगा। नीचे दिए कोड स्निपेट हैजावा विरासत ओवरराइडिंग आवृत्ति चर
class parent {
int a;
parent() {
System.out.println("in parent");
a = 10;
}
void method() {
System.out.println(a);
}
}
class child extends parent {
int a;
child() {
System.out.println("in child");
a = 11;
}
}
public class Test {
public static void main(String args[]) throws IOException {
parent p1 = new child();
p1.method();
}
}
उत्पादन मैं माता-पिता में
है
बच्चे में
कोई मुझे समझाने कृपया कारण है कि इसकी चर्चा करते हुए माता-पिता वर्ग के उदाहरण चर a
और बाल वर्ग का a
नहीं।
एक और संदेह यह है कि, मैं विधि को छिपाने में समझ गया, जब माता-पिता और बाल वर्ग में एक स्थैतिक विधि भी एक ही हस्ताक्षर के साथ एक स्थिर विधि घोषित कर दी गई है। यहां छुपा मतलब है? कौन सी विधि छिपी जा रही है? यदि आप माता-पिता की विधि कृपया मुझे समझा सकते हैं?
अग्रिम धन्यवाद।
क्या आप सुनिश्चित हैं कि आपका कोड भी संकलित करता है? क्या आपने अपना कोड चलाया है? –
यह संकलित नहीं होना चाहिए, माता-पिता के पास कोई विधि नहीं है विधि() ' –
क्षमा करें कि गलत तरीके से स्वरूपित किया गया था। अब कोड अपडेट किया गया। – Mojoy