2013-02-15 13 views
5

से प्राप्त सार वर्ग मुझे अभी अपने आईडीई में एक चेतावनी मिली है कि मेरी कक्षा abstract है लेकिन यह concrete कक्षा से ली गई है। और क्या? मैं ऐसा क्यों नहीं कर सकता? यह मेरी आवश्यकताओं को बहुत अच्छी तरह से सूट करता है। यह सिर्फ एक चेतावनी है हालांकि कक्षा संकलित है। बस दिलचस्पी है कि यह मुझे यह चेतावनी क्यों देता है। धन्यवाद।कंक्रीट वर्ग

अद्यतन

मैं कुछ स्पष्टीकरण के साथ मेरे सवाल का विस्तार करने के लिए की जरूरत है। मेरे पास यह वर्ग अन्य वर्ग से लिया गया है और मैं चाहता हूं कि कोई भी इसे तुरंत चालू न कर सके। इसके अलावा, मुझे इस सार वर्ग से दो उप-वर्गों की आवश्यकता है और उनमें से प्रत्येक को एक अमूर्त विधि का अपना कार्यान्वयन करने की आवश्यकता है। इसीलिए।

क्या आपको लगता है कि यह बुरा विचार है? इसके बजाय मैं किस दृष्टिकोण को ले जाऊंगा?

+0

यह बुरा डिजाइन है के बारे में परेशान करने के लिए IMO बताते हैं के रूप में। – Azodious

+0

ऐसा लगता है कि विरासत की बजाय संरचना के लिए पूछना है। –

+0

क्या आप अपने उपयोग के मामले के बारे में अधिक सटीक जानकारी प्रदान कर सकते हैं? आप किस कक्षा के बारे में बात कर रहे हैं? आपके पास खराब डिज़ाइन हो सकता है या शायद नौकरी के लिए गलत टूल का उपयोग कर रहा हो - क्यूबेन का उत्तर भी देखें। –

उत्तर

3

मुझे लगता है कि कारण यह है कि अमूर्त वर्ग आमतौर पर उप-वर्ग बनाने के लिए मूल व्यवहार/जानकारी के लिए काम करते हैं। ऐसा निर्णय लेने के दौरान अन्य प्रोग्रामर के बारे में सोचें। दूसरों की उम्मीद नहीं है।

वैसे भी, आप संकलक प्राथमिकताओं को इस प्रकार की "समस्या" के लिए चेतावनियां न देने के लिए सेट कर सकते हैं।

अद्यतन

अपने अद्यतन पढ़ने के बाद मुझे लगता है कि सबसे आसान तरीका घोषित करने के लिए है इस वर्ग के constructor protected। अमूर्त विधि के लिए: आप बस अपने उप-वर्गों से override कर सकते हैं, मुझे लगता है।

+0

नहीं, मैं संरक्षित कन्स्ट्रक्टर का उपयोग नहीं कर सकता क्योंकि बाल वर्ग दूसरे पैकेज में झूठ बोलेंगे। – Eugene

2

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

यह एक आम मामला है और आमतौर पर खराब सिस्टम आर्किटेक्चर को इंगित करता है। यही कारण है कि संकलक एक चेतावनी दिखाता है।

0

जावा कंपाइलर चेतावनियां केवल प्रोग्रामर के लिए एक संकेत हैं जो सामान्य रूप से नहीं की जानी चाहिए अन्यथा प्रोग्रामर भविष्य में इसके कारण बग प्राप्त कर सकता है।

See this link यह क्यों, चेतावनी

संबंधित मुद्दे