नई बनाई गई वस्तुएं। हालाँकि, सवाल उठता है: क्या एक उपवर्ग के कंस्ट्रक्टर के भीतर सुपर () विधि को स्पष्ट रूप से कॉल करना आवश्यक है? ) कॉल, कंपाइलर स्वचालित रूप से सुपरक्लास में सुलभ नो-एआरजीएस कंस्ट्रक्टर को आमंत्रित करता है। इस कंस्ट्रक्टर के पास कोई पैरामीटर नहीं है और सुपरक्लास के इंस्टेंस सदस्यों को ठीक से शुरू करने के लिए महत्वपूर्ण है। एक मिलान तर्क सूची के साथ सुपरक्लास में एक कंस्ट्रक्टर। यदि कोई मिलान निर्माता नहीं पाया जाता है, तो एक त्रुटि होती है। दूसरे शब्दों में, सुपर () के माध्यम से आमंत्रित किए गए कंस्ट्रक्टर में ऐसे तर्क होने चाहिए जो सबक्लास के कंस्ट्रक्टर से पारित तर्कों से मेल खाते हैं। सुपरक्लास में ARGS कंस्ट्रक्टर को सबक्लास को दिखाई देना चाहिए। यदि सुपरक्लास कंस्ट्रक्टर निजी या संरक्षित है, तो सही तर्क के साथ सुपर () के लिए एक स्पष्ट कॉल () सही कंस्ट्रक्टर को लागू करने के लिए आवश्यक है। । इस मामले में, आधार में डिफ़ॉल्ट कंस्ट्रक्टर स्वचालित रूप से लागू हो जाएगा जब व्युत्पन्न का एक उदाहरण बनाया जाता है। व्युत्पन्न (int i) {सुपर (i); }}
यहाँ, व्युत्पन्न में कंस्ट्रक्टर स्पष्ट रूप से तर्क के साथ आधार में मिलान निर्माता को आमंत्रित करता है। आधार {} // त्रुटि: सुपरक्लासमें कोई सुलभ NO-ARGS कंस्ट्रक्टर नहीं है, इस कोड का परिणाम एक त्रुटि है क्योंकि बेस का कंस्ट्रक्टर निजी है और उपवर्ग के लिए सुलभ नहीं है।
निष्कर्ष पर, जबकि कंपाइलर स्वचालित रूप से सुपरक्लास में सुलभ नो-एआरजीएस कंस्ट्रक्टर को आमंत्रित करता है, स्पष्ट सुपर () कॉल आवश्यक होते हैं जब एक सबक्लास के कंस्ट्रक्टर के तर्क होते हैं या जब सुपरक्लास का कंस्ट्रक्टर सुलभ नहीं होता है। इन बारीकियों को समझना जावा में उचित ऑब्जेक्ट इनिशियलाइज़ेशन सुनिश्चित करने के लिए महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3