2011-11-08 5 views
22

में एक बाल वर्ग में अभिभावक कन्स्ट्रक्टर का उपयोग करना मेरे पास एक वर्ग "चाइल्ड क्लास" है जो कक्षा "पेरेंट क्लास" को बढ़ाता है। अभिभावक वर्ग के लिए कन्स्ट्रक्टर को पूरी तरह से बदलने की बजाय, मैं पहले मूल वर्ग के कन्स्ट्रक्टर को कॉल करना चाहता हूं, और फिर कुछ अतिरिक्त काम करना चाहता हूं।जावा

मेरा मानना ​​है कि डिफ़ॉल्ट रूप से मूल वर्ग के 0 तर्क कन्स्ट्रक्टर को बुलाया जाता है। यह वही नहीं है जो मैं चाहता हूं। मुझे एक तर्क के साथ बुलाया जाने वाला निर्माता चाहिए। क्या यह संभव है?

मैं

this = (ChildClass) (new ParentClass(someArgument)); 

कोशिश की, लेकिन वह काम नहीं करता है क्योंकि आप "इस" संशोधित नहीं कर सकते।

+2

['super'] (http://download.oracle.com/javase/tutorial/java/IandI/super.html) जावा में। – birryree

+0

समाधान के लिए इसे देखें: http://leepoint.net/notes-java/oop/constructors/constructor-super-example.html – Raihan

उत्तर

48

आप बच्चे के कन्स्ट्रक्टर के भीतर से "सुपर" के साथ माता-पिता के निर्माता को संदर्भित कर सकते हैं।

public class Child extends Parent { 
    public Child(int someArg) { 
     super(someArg); 
     // other stuff 
    } 
    // .... 
} 
+2

आह, धन्यवाद। मुझे वास्तव में उस जावा प्रोग्रामिंग पुस्तक को पढ़ना चाहिए जो मैंने चारों ओर बिछाया है, यह मुझे इस तरह के बेवकूफ सवाल पूछने से रोक देगा। –

+6

सुपर() के साथ माता-पिता के कन्स्ट्रक्टर को कॉल आपके बच्चे के कन्स्ट्रक्टर में पहली कॉल होने की आवश्यकता है। – bakoyaro

5

आपको सुपर कीवर्ड का उपयोग करना चाहिए।

public ChildClass(...) { 
    super(...); 
} 
9

एक विशिष्ट अभिभावक वर्ग निर्माता आह्वान करने के लिए, बच्चे के स्तर के निर्माता शरीर में पहला विवरण super(param1, param2, ...) डाल दिया।