java - Why this in OOP -


  वर्ग अभिभावक {निजी इंट var = 1; सार्वजनिक int getVar () {वापसी var; } सार्वजनिक शून्य सेटवर (इंट वर्) {this.var = var; }} वर्ग बाल अभिभावक (निजी int var = 2; सार्वजनिक int getVar () {वापसी var; } सार्वजनिक शून्य सेटवर (इंट वर्) {this.var = var; }}  

और अब, यह परीक्षण करते समय, हमें 2 मिलता है।

  बच्चे का बच्चा = नया बच्चा (); माता-पिता = (माता-पिता) बच्चे; Println (parent.getVar ());  

मैं बच्चे के उद्देश्य को एक अभिभावक को स्पष्ट रूप से ढंक कर रहा हूं और मेरे इरादों को स्पष्ट कर रहा हूं, इसलिए जब मैं माता-पिता करता हूँ। GetVar () मुझे 2 मिलता है?

  बाल बच्चे = नया बाल (); माता-पिता = (माता-पिता) बच्चे;  

आप बस बिंदु के लिए एक सुपर क्लास संदर्भ का उपयोग कर रहे हैं। आपका ऑब्जेक्ट अभी भी वर्ग बाल है और वह कभी भी नहीं बदलेगा। तो आपको हमेशा 2 प्राप्त होगा।

इसलिए जब आप कॉल करेंगे

  System.out.println (parent.getVar ()); समय संकलित करने पर  

यह जांचता है कि क्या getVar () संदर्भ के वर्ग में मौजूद है parent जो सच है तो यह संकलन करता है रनटाइम में यह वास्तविक ऑब्जेक्ट का वर्ग जानता है जो कि Child है और इसी विधि को कार्यान्वित करता है।


Comments

Popular posts from this blog

java - Joda Time Interval Not returning what I expect -

Member with no value in F# -

javascript - Render HTML after each iteration in loop -