का सटीक उपयोग एक सार वर्ग का सटीक उपयोग क्या है? एक साधारण वर्ग में एक ही चीज करना संभव नहीं है क्योंकि यह एक सार वर्ग है?सार वर्ग
सार वर्ग
उत्तर
एक सार वर्ग का उपयोग तब किया जाता है जब आपके पास कुछ आधार कार्यक्षमता होती है जिसे आप सबक्लास को उत्तराधिकारी बनाना चाहते हैं, लेकिन बेस क्लास को तुरंत चालू करने का अर्थ नहीं होगा। उदाहरण के लिए, यदि आपके पास आकार आधार वर्ग की तरह कुछ था, तो आप कुछ कार्यान्वयन में निर्मित हो सकते हैं जिसका उपयोग उप-वर्गों के साथ-साथ इंटरफ़ेस विधियों द्वारा किया जा सकता है जिन्हें आप सबक्लास लागू करना चाहते हैं। हालांकि, शायद यह एक आकार वस्तु बनाने के लिए समझ में नहीं आता है। एक अमूर्त वर्ग आपको यह कार्यक्षमता देता है। अमूर्त वर्ग के उपयोग का एक और बड़ा उदाहरण abstract factory pattern है।
कुछ ठोस कार्यान्वयन प्रदान करने के लिए एक अमूर्त वर्ग का उपयोग करें लेकिन तत्काल अनुमति न दें। आप हमेशा एक साधारण वर्ग को तुरंत चालू कर सकते हैं जो समझ में नहीं आता है कि यह अकेले नहीं खड़ा हो सकता है। साथ ही, एक कार्यान्वयन कक्षाओं में समान ठोस कार्यान्वयन होने पर एक इंटरफ़ेस पर्याप्त नहीं हो सकता है। एक अमूर्त वर्ग बस पर्याप्त है। केवल अनुबंध, कोई कार्यान्वयन, कोई इन्स्टेन्शियशन
- इंटरफ़ेस अनुबंध, कुछ कार्यान्वयन, कोई इन्स्टेन्शियशन
- कक्षा: अनुबंध, क्रियान्वयन, इन्स्टेन्शियशन
मैं तीसरे, कक्षा में यह कैसे संभव अनुबंध कर सकता हूं। क्योंकि अनुबंध का अर्थ उस विधि की घोषणा है, जिसका अर्थ है "अमूर्त"। और कंपाइलर बलों को अमूर्त वर्ग में परिवर्तित करने के लिए सामान्य वर्ग में यह संभव अनुबंध कैसे है। अगर मेरा तर्क गलत है, तो कृपया मुझे सही करें। – devsda
नियमित कक्षाओं के विपरीत, abstract
कक्षाओं में abstract
विधियां हो सकती हैं। वे इंटरफेस सदस्यों की तरह काम करते हैं। वे तरीकों को लागू कर सकते आदि, खेतों & नेस्टेड प्रकार के होते हैं, एक और वर्ग से निकाले जाते हैं,
नियमित कक्षाएं सभी के लिए कार्यान्वयन प्रदान करने के लिए आप की आवश्यकता:
इस बीच, वे तो बस सब कुछ नियमित कक्षाओं कर सकते हैं इस बारे में क्या कर सकते हैं तरीकों।
इंटरफेस के लिए आपको सभी विधियों के लिए कोई कार्यान्वयन प्रदान करने की आवश्यकता है।
सार कक्षाएं वर्ग का एकमात्र प्रकार है कि आप दोनों के लिए अनुमति देते तरीकों कि एक कार्यान्वयन शामिल नहीं है, और तरीकों कि एक कार्यान्वयन प्रदान नहीं करते हैं, लेकिन एक प्रदान करने के लिए एक इनहेरीट वर्ग की आवश्यकता है।
तथ्य यह है कि आप एक कार्यान्वयन के बिना तरीकों को जोड़ने के लिए अनुमति दी जाती है कारण है कि आप एक अमूर्त वर्ग का दृष्टांत नहीं कर सकता है: यदि आप केवल कुछ अपने सभी तरीकों के लिए कार्यान्वयन है कि दृष्टांत कर सकते हैं।
- 1. जावा - सार वर्ग रखने के लिए सार वर्ग?
- 2. सार तत्वों के बिना सार वर्ग
- 3. सार वर्ग - सी ++ अभ्यास
- 4. सी ++ सार वर्ग
- 5. जावा: सार वर्ग
- 6. सार वर्ग या इंटरफ़ेस
- 7. प्रकरण सार वर्ग
- 8. सी # सार वर्ग स्पष्टीकरण
- 9. शुद्ध सार आधार वर्ग
- 10. जावा सार वर्ग इंटरफ़ेस
- 11. सार वर्ग घोषणाओं ++
- 12. एक सार वर्ग
- 13. php अमूर्त वर्ग एक और सार वर्ग
- 14. जावा सार वर्ग और जेनेरिक्स
- 15. सी # में पुनर्रचना सार वर्ग
- 16. 100% सार वर्ग बनाम इंटरफेस
- 17. डेटाबेस में एक सार आधार वर्ग और उप-वर्ग मॉडल
- 18. पायथन - एक सार आधार वर्ग का परीक्षण
- 19. सी # सार वर्ग स्थिर क्षेत्र विरासत
- 20. एक शुद्ध सार वर्ग और इंटरफ़ेस
- 21. सी # - इंटरफेस/सार वर्ग - घटना सुनिश्चित विधि
- 22. सार वर्ग, कोड डुप्लिकेशन से कैसे बचें?
- 23. सार वर्ग/विधि, सी # -> वीबीएनईटी
- 24. सार वर्ग + mixin + अजगर में एकाधिक वंशानुक्रम
- 25. सी ++ सार वर्ग पैरामीटर त्रुटि वैकल्पिक हल
- 26. इंटरफेस बनाम सार वर्ग (विशिष्ट मामले में)
- 27. प्रति वर्ग वर्ग को तालिका कैसे प्राप्त करें जब आधार वर्ग धाराप्रवाह निबर्ननेट में सार है?
- 28. सार
- 29. सार कक्षाएं
- 30. कंकाल कार्यान्वयन सामान्य सार वर्ग से अलग कैसे होता है?
देखें: http://stackoverflow.com/questions/56867/interface-vs-base-class –
[टेम्पलेट विधि डिजाइन पैटर्न] पर एक नज़र डालें (http://sourcemaking.com/design_patterns/template_method) मुझे लगता है सार वर्ग वहाँ unreplaceable है। – rafek