मैंने समझने की कोशिश की है लेकिन अभी भी सुनिश्चित नहीं है। यदि बेस क्लास में कोई कन्स्ट्रक्टर है, तो व्युत्पन्न कक्षाएं हमेशा इसे कॉल करेंगी? मुझे पता है कि वे इसे ओवरराइड कर सकते हैं (यहां सही शब्द नहीं है, मुझे पता है - मेरा मतलब है कि उनके रचनाकारों को कोड जोड़ें) लेकिन मुझे लगता है कि कन्स्ट्रक्टर को बेस क्लास में परिभाषित किया गया है, व्युत्पन्न लोग इसे हमेशा कॉल करेंगे। क्या यह सच है?कन्स्ट्रक्टर्स विरासत
6
A
उत्तर
6
हां, यदि कोई पैरामीटर रहित कन्स्ट्रक्टर है तो इसे हमेशा बुलाया जाएगा। यदि वहाँ एक से अधिक निर्माता, आप चुन सकते हैं कि base
कीवर्ड के साथ कॉल करने के लिए:
class Parent {
public Parent() {}
public Parent(int x) {}
}
class Child : Parent {
public Child(int x) : base(x) {
}
}
यदि वहाँ कोई parameterless निर्माता, आप हो जाएगा मजबूर यह करने के लिए:
class Parent {
public Parent(int x) {}
}
class Child : Parent {
// This will not compile without "base(x)"
public Child(int x) : base(x) {
}
}
2
यदि बेस क्लास में केवल पैरामीटर रहित कन्स्ट्रक्टर है, तो बाल वर्ग का निर्माता हमेशा इसे पहले कॉल करेगा। दूसरी ओर यदि आपके पास बेस क्लास में परिभाषित अन्य रचनाकार हैं, तो बाल वर्ग में एक विकल्प होगा जो कॉल करने के लिए आधार निर्माता होगा।
संबंधित मुद्दे
- 1. जावा कन्स्ट्रक्टर्स
- 2. ओवरराइडिंग कन्स्ट्रक्टर्स
- 3. जेनेरिक कन्स्ट्रक्टर्स का लाभ
- 4. पॉलिमॉर्फिज्म और कन्स्ट्रक्टर्स
- 5. पैरामीटर रहित कन्स्ट्रक्टर्स
- 6. जेएस कन्स्ट्रक्टर्स में रिटर्न स्टेटमेंट
- 7. इकाई फ्रेमवर्क पैरामीटर/ओवरलोडेड कन्स्ट्रक्टर्स?
- 8. क्या सी ++ कन्स्ट्रक्टर्स टेम्पलेट्स हो सकते हैं?
- 9. एएसपी.NET एमवीसी नियंत्रक कन्स्ट्रक्टर्स में सत्र शून्य,
- 10. सिस्टम। थ्रेडिंग। विरासत विरासत
- 11. सी ++: क्या पॉलिमॉर्फिक कॉपी कन्स्ट्रक्टर्स काम कर सकते हैं?
- 12. विरासत
- 13. विरासत
- 14. विरासत
- 15. विरासत?
- 16. जावा विरासत बनाम सी # विरासत
- 17. PostgreSQL विरासत: विरासत-तालिका ट्रिगर्स विरासत में हैं?
- 18. 'विरासत प्रत्यक्ष आधार' एकाधिक विरासत के कारण
- 19. सिंगल टेबल विरासत या कक्षा तालिका विरासत?
- 20. ORM विरासत
- 21. विरासत कंस्ट्रक्टर्स
- 22. विरासत एकत्रीकरण
- 23. एसएसएल विरासत
- 24. जावास्क्रिप्ट विरासत
- 25. विरासत डेटाबेस
- 26. विरासत वर्ग
- 27. वर्चुअल विरासत
- 28. .. वर्ग विरासत
- 29. प्रॉक्सी विरासत
- 30. विरासत वर्ग
मुझे यकीन नहीं है कि मुझे यह मिल गया है। पहले उदाहरण में, चाइल्ड (इंट एक्स) है: आधार (एक्स) तो मुझे लगता है कि दोनों को बुलाया जाएगा? – Miria
@ मिरिया: हाँ। ऐसा कोई तरीका नहीं है कि * कुछ * बेस कन्स्ट्रक्टर नहीं कहा जाएगा (उदाहरण के लिए दूसरे उदाहरण में संकलक आपको 'बेस (x) ') को हटाने नहीं देगा; 'बेस' का उपयोग करने से आपको बस * कौन सा * कॉल किया जाएगा, और किस पैरामीटर के साथ चयन करने की अनुमति मिलती है। – Jon