java - How does a JVM execute the Inheritance tree structure? -


<पूर्व> वर्ग वाहन {सार्वजनिक इंट पहियों; सार्वजनिक इंट लाइट्स; } वर्ग कार वाहन प्रदान करता है {सार्वजनिक इंट पहियों = 4; सार्वजनिक इंट लाइट = 2; सार्वजनिक शून्य रोशनी_ऑन (इंट लाइट) {// कोड को ऑनलाइट करने के लिए}} वर्ग बीएमडब्ल्यूसीआर कार {सार्वजनिक इंट पहियों = 4; सार्वजनिक इंट लाइट्स = 4; } सार्वजनिक वर्ग टेस्टकार्सर {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग एजीआर []) {// निर्माता / बीएमडब्ल्यूसीआर = नया बीएमडब्ल्यूएसीएआर () द्वारा प्रदान किए गए डिफ़ॉल्ट // कन्स्ट्रक्टर को कॉल करके बीएमडब्ल्यूएसीए की एक नई घटना का निर्माण करना; bmwCar.lights_on (); }}

ऊपर दिए गए उदाहरण में, जब मैं TestCar.java फ़ाइल चलाता हूं, तो जेवीएम का क्लास लोडर टेस्टकार्ड फाइल को लोड करता है विधि क्षेत्र, और यह मुख्य विधि को निष्पादित करता है जब बीएमडब्ल्यूसीआर उदाहरण बना दिया जाता है, तो यह बीएमडब्ल्यूसीआर वर्ग के डिफ़ॉल्ट कन्स्ट्रक्टर को कॉल करता है और सुपर कन्स्ट्रक्टर को कार्यान्वित करता है, जो कि कार वर्ग के डिफॉल्ट कन्स्ट्रक्टर । मैं जानना चाहूंगा कि जब bmwCar.lights_on (); विधि को "कोड> लाइट_ऑन विधि और bmwCar वस्तु के लिए JVM दिखता है यह उदाहरण वैरिएबल पहियों और रोशनी अर्थात् 4 और 4 के मूल्य को विचित्र बनाता है।

जब लाइट_ऑन (); विधि को कार वर्ग में निष्पादित किया जाता है, तो क्या JVM मूल्य को फिर से चालू करता है? संदर्भ bmwCar.lights_on से कार वर्ग lights_on विधि से कैसे पारित किया गया है? मैं वर्कफ़्लो के बारे में एक विस्तृत जवाब की तलाश कर रहा हूं।

आप सदस्य चर घोषित कर रहे हैं पहियों < / कोड> और रोशनी वर्ग वाहन में, और फिर आप सदस्य वर्गों को उप-क्लासेस कार और बीएमडब्ल्यूसीआर में उसी नाम से घोषित कर रहे हैं

ध्यान दें कि सदस्य चर नहीं विधियों की तरह ओवरराइड; सुपरक्लस में वेरिएबल्स छिपाने में सदस्य चर।

इसलिए, सदस्य चर का एक सेट नहीं है - तीन हैं! आप उन तीनों में से एक को देख सकते हैं, जो आपकी पद्धति के अनुसार कक्षा है। सुपर क्लासेस के सदस्य चर का किसी तरह पुन: आरंभ नहीं किया जाता है। विधि लाइट_ऑन में वर्ग कार में, आप चर पहियों और रोशनी वर्ग देखेंगे कार के , मान 4 और 2 के साथ।

सुपरक्लॉस के समान सदस्य के साथ सदस्य चर का प्रयोग करना चाहिए, क्योंकि यह भ्रमित है, और यह ऐसा नहीं कर रहा है जो आप सोच सकते हैं कि यह क्या करता है।


Comments

Popular posts from this blog

MySql variables and php -

url rewriting - How to implement the returnurl like SO in PHP? -

Which Python client library should I use for CouchdB? -