अमूर्त वर्ग का मुख्य विचार निम्नलिखित थीसिस में निहित है: कभी-कभी तैयार-किए गए वर्गों की आवश्यकता नहीं होती है, लेकिन "कच्चे" रूप में। इस तरह के प्रीसेट का उपयोग सीधे (तत्काल) नहीं किया जा सकता है।
जावा में एक सार वर्ग क्या है
आइए एक और उदाहरण देखें।Java.util पैकेज में जावा में एक सार वर्ग कैलेंडर है। यह एक विशिष्ट कैलेंडर को लागू नहीं करता है, जिसका उपयोग किया जाता है, उदाहरण के लिए, पश्चिमी और पूर्वी यूरोप, चीन, उत्तर कोरिया, थाईलैंड, आदि में। लेकिन इसके कई उपयोगी कार्य हैं, उदाहरण के लिए, एक विशिष्ट तिथि में कई दिन जोड़ना: ये कार्य हैं कैलेंडर के किसी भी कार्यान्वयन के लिए आवश्यक है। आप एक अमूर्त वर्ग से एक उदाहरण नहीं ले सकते।
सार कक्षाएं, सार जावा तरीके
मान लीजिए कि आपको कई ग्राफिक विकसित करने की आवश्यकता हैतत्व, उदाहरण के लिए, ज्यामितीय आकार: सर्कल, आयत, तारा, आदि और एक कंटेनर है जो उन्हें खींचता है। प्रत्येक घटक की एक अलग उपस्थिति होती है, इसलिए संबंधित विधि (इसे पेंट कहते हैं) को अलग तरीके से लागू किया जाता है। हालाँकि, प्रत्येक घटक में बहुत कुछ है: आकृतियों को एक आयत में अंकित किया जाना चाहिए, उनका रंग, दृश्य और अदृश्य हो सकता है, आदि, अर्थात, आपको इन सभी आकृतियों के लिए एक मूल वर्ग बनाने की आवश्यकता है, जहां प्रत्येक घटक सामान्य गुण विरासत में मिलेगा।
यदि कक्षा में सार विधियां हैं, तोकक्षा सार है। कीवर्ड सार को क्लास शब्द से पहले रखा जाता है, और विधि हेडर में भी। ऐसी विधि के शीर्षक के बाद एक अर्धविराम रखा जाना चाहिए। जावा में, एक अमूर्त वर्ग उदाहरण नहीं बना सकता है। यदि हम उनकी रचना को निषिद्ध करना चाहते हैं, भले ही वर्ग में कोई सार विधियां न हों, तो कक्षा को सार घोषित किया जा सकता है। लेकिन अगर कक्षा में कम से कम एक सार पद्धति है, तो कक्षा का सार होना चाहिए। एक वर्ग के लिए अमूर्त, और अंतिम और एक विधि भी असंभव है। विधि अमूर्त, निजी, स्थिर, मूल नहीं हो सकती। विरासत में मिली कक्षाओं को गैर-सार और तात्कालिक घोषित करने के लिए, उन्हें माता-पिता के सभी सार तरीकों को लागू करना होगा। वर्ग स्वयं अपने अमूर्त तरीकों का उपयोग कर सकता है।
उदाहरण:
- अमूर्त वर्ग
- सार्वजनिक सार शून्य विधि (इंट);
- }
- वर्ग BClass का विस्तार AClass {
- सार्वजनिक शून्य विधि (int a) {
- // तन
- }
प्रकार सार वर्ग के चर की अनुमति है। वे इस वर्ग के एक गैर-अमूर्त वंशज का उल्लेख कर सकते हैं या अशक्त हो सकते हैं।
जावा इंटरफेस - कई वंशानुक्रम का विकल्प
जावा में कोई बहु विरासत नहीं है क्योंकि तब कुछ समस्याएं उत्पन्न होती हैं। एक वर्ग कई वर्गों से विरासत में नहीं मिल सकता है। लेकिन यह कई इंटरफेस को लागू कर सकता है।
जावा इंटरफेस और अमूर्त वर्ग - अवधारणाएँसमान लेकिन समान नहीं। इंटरफ़ेस को सार्वजनिक घोषित किया जा सकता है, फिर यह सभी के लिए उपलब्ध है, या आप सार्वजनिक संशोधक को छोड़ सकते हैं, फिर इंटरफ़ेस केवल इसके पैकेज के अंदर उपलब्ध है। सार कीवर्ड की आवश्यकता नहीं है क्योंकि इंटरफ़ेस पहले से ही सार है, लेकिन आप इसे निर्दिष्ट कर सकते हैं।
इंटरफ़ेस घोषणा
यह एक शीर्षक से शुरू होता है और पहले जा सकता हैइंटरफ़ेस शब्द के बाद सार्वजनिक कीवर्ड। तब शब्द का विस्तार होता है और इंटरफेस की एक गणना जिसमें से दिए गए विरासत में मिला है। यहां दोहराव की अनुमति नहीं है, और एक विरासत संबंध के लिए एक परिपत्र संबंध बनाना भी असंभव है। फिर घुंघराले ब्रेस में संलग्न, इंटरफ़ेस का शरीर आता है। तत्वों को इंटरफ़ेस के शरीर में घोषित किया जाता है: निरंतर क्षेत्र और सार तरीके। सभी क्षेत्र सार्वजनिक अंतिम स्थैतिक हैं - ये सभी संशोधक वैकल्पिक हैं। सभी तरीकों को सार्वजनिक सार माना जाता है - ये संशोधक भी निर्दिष्ट किए जा सकते हैं। अब एक अमूर्त वर्ग और एक जावा इंटरफेस के बीच अंतर के बारे में पर्याप्त कहा गया है।
- सार्वजनिक इंटरफ़ेस एआई का विस्तार बी, सी, डी {
- // तन
- }
एक वर्ग को एक इंटरफ़ेस के उत्तराधिकारी के रूप में घोषित करने के लिए, कार्यान्वयन कीवर्ड का उपयोग करें:
- क्लास एसीलस बीआई, सीआई, डीआई {} लागू करता है
यही है, अगर एक क्लास डिक्लेरेशन में लागू होने के बाद एक इंटरफ़ेस नाम निर्दिष्ट किया जाता है, तो क्लास इसे लागू करता है। इस वर्ग के वारिसों को इसके तत्व विरासत में मिलते हैं, इसलिए वे इसे लागू भी करते हैं।
इंटरफ़ेस चर भी अनुमति है।वे उस वर्ग के प्रकार को संदर्भित कर सकते हैं जो इस इंटरफ़ेस को लागू करता है, या अशक्त है। इस तरह के चर में ऑब्जेक्ट क्लास के सभी तत्व होते हैं, क्योंकि ऑब्जेक्ट क्लास से प्राप्त होते हैं, और बदले में, ऑब्जेक्ट क्लास से विरासत में मिलते हैं।
इस लेख में, हमने जावा ऑब्जेक्ट मॉडल के कुछ तत्वों पर ध्यान दिया - सार कक्षाएं, सार विधियां, इंटरफेस।