java - Is calling super's constructor redundant in this case? -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 7 जवाब
मैंने हमेशा सोचा कि जब एक उप-वर्ग के साथ एक वस्तु, हमें स्पष्ट रूप से
super (arguments list) को सुपर वर्ग के कन्स्ट्रक्टर को कॉल करने की आवश्यकता है। हालांकि मैंने एक प्रयोग किया और यह महसूस किया कि super का उपयोग करके भी बिना , सुपर क्लास के कन्स्ट्रक्टर को स्वचालित रूप से कहा जाएगा। क्या ये सच है?
यदि यह सत्य है, तो जब
सुपर () अनावश्यक होता है और जब ऐसा नहीं होता है?
वर्ग माता-पिता {सार्वजनिक जनक} {सिस्टम .out.println ("सुपर क्लास"); }} वर्ग बाल अभिभावक (सार्वजनिक बाल) (सुपर) (); // क्या यह बेमानी है? System.out.println ("सब क्लास"); }} सार्वजनिक वर्ग टेस्ट क्लास {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {नया बाल (); }}
OUTPUT ( के साथ
सुपर (); बाल क्लास में):
सुपर क्लास उप वर्ग
OUTPUT ( बिना
सुपर (); इन बाल वर्ग):
सुपर क्लास उप वर्ग
<पी > डिफ़ॉल्ट रूप सेसुपर () सभी उप-वर्ग में जोड़ा जाता है, इसलिए इसे स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है
इस (आर्ग्स) का उपयोग करके एक ही कक्षा के
सुपर (आर्ग्स) या ओवरलोड किए गए कन्स्ट्रक्टर का प्रयोग करके सुपर क्लास के अतिभारित कन्स्ट्रक्टर को कॉल करके डिफ़ॉल्ट व्यवहार ओवरराइड किया जा सकता है ।
मान लीजिए कि सुपर क्लास के पास कोई-आर्गिमेंट कन्स्ट्रक्टर नहीं है और आपने अन्य कन्स्ट्रक्टर बनाया है, उस स्थिति में आपको
super (args) कॉल करने के लिए स्पष्ट रूप से संकलन समय त्रुटि को कॉल करना है ।
Comments
Post a Comment