"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या आपको कंस्ट्रक्टर्स में हमेशा `सुपर()` का उपयोग करना चाहिए?

क्या आपको कंस्ट्रक्टर्स में हमेशा `सुपर()` का उपयोग करना चाहिए?

2024-11-25 को प्रकाशित
ब्राउज़ करें:696

Should You Always Use `super()` in Constructors?

क्या कंस्ट्रक्टर्स में सुपर() की उपस्थिति वैकल्पिक है?

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, व्युत्पन्न कक्षाओं में कंस्ट्रक्टर्स का उपयोग करना आम बात है कंस्ट्रक्टर्स को उनके सुपरक्लास में आमंत्रित करना। हालाँकि, कुछ डेवलपर्स कंस्ट्रक्टर्स के भीतर सुपर() को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता पर सवाल उठाते हैं। यदि उपवर्ग कंस्ट्रक्टर सुपरक्लास कंस्ट्रक्टर निर्दिष्ट नहीं करता है, तो सुपरक्लास का सुलभ नो-आर्ग्स कंस्ट्रक्टर। इसका मतलब यह है कि ज्यादातर मामलों में, सुपर() को हटाने से प्रोग्राम के व्यवहार पर कोई असर नहीं पड़ता है।

नियम के अपवाद

हालांकि, कुछ स्थितियां हैं जहां सुपर() का स्पष्ट आह्वान आवश्यक है:

यदि सुपरक्लास में पहुंच योग्य नो-आर्ग नहीं है निर्माणकर्ता। कंस्ट्रक्टर।

की उपस्थिति में कंस्ट्रक्टर का उपयोग तर्क
  • जब एक उपवर्ग कंस्ट्रक्टर के पास तर्क होते हैं, तो यह उपवर्ग कंस्ट्रक्टर की जिम्मेदारी है कि वह सुपरक्लास कंस्ट्रक्टर को उचित तर्क पारित करे। जब तक स्पष्ट रूप से निर्दिष्ट न किया जाए, कंपाइलर स्वचालित रूप से तर्कों के साथ एक सुपरक्लास कंस्ट्रक्टर का आह्वान नहीं करेगा। वर्ग आधार { निजी आधार() {} } सार्वजनिक वर्ग व्युत्पन्न आधार का विस्तार करता है { सार्वजनिक व्युत्पन्न(int i) { बहुत अच्छा(); // बेस के डिफ़ॉल्ट नो-आर्ग्स कंस्ट्रक्टर को कॉल करें } }
  • इस उदाहरण में, व्युत्पन्न कंस्ट्रक्टर में सुपर() कॉल आवश्यक है क्योंकि बेस में एक निजी नो-आर्ग्स कंस्ट्रक्टर है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3