मैं एक तर्क है कि सभी बच्चे कक्षाओं द्वारा स्वचालित रूप से विरासत में मिला हो जाता है के साथ एक निर्माता करना चाहते हैं, लेकिन जावा मुझे ऐसा नहीं दूँगी इसजावा: इनहेरिट निर्माता
class A {
public A(int x) {
// Shared code here
}
}
class B extends A {
// Implicit (int x) constructor from A
}
class C extends A {
// Implicit (int x) constructor from A
}
मेरे पास है नहीं करना चाहते प्रत्येक बच्चे वर्ग के लिए B(int x)
, C(int x)
आदि लिखने के लिए। क्या इस समस्या का सामना करने का कोई बेहतर तरीका है?
समाधान # 1। एक init()
विधि बनाएं जिसे कन्स्ट्रक्टर के बाद बुलाया जा सके। यह काम करता है, हालांकि मेरे विशेष डिजाइन के लिए, मैं उपयोगकर्ता को संकलक में कुछ पैरामीटर निर्दिष्ट करने की आवश्यकता करना चाहता हूं जो संकलन समय पर मान्य हैं (उदाहरण के लिए varargs/प्रतिबिंब के माध्यम से नहीं)।
क्या एक बमर .. – machete
कोई फर्क नहीं पड़ता कि मुझे कितनी बार याद दिलाया जाता है, यह अभी भी परेशान है। व्यापक आधार वर्ग बनाने के लिए इस प्रयास में रखो, फिर बच्चे 50 लाइनर के रूप में समाप्त हो जाते हैं क्योंकि मुझे इतना बॉयलरप्लेट –