अमूर्तता को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की सबसे महत्वपूर्ण विशेषताओं में से एक माना जाता है। यह सुलभ इंटरफेस के माध्यम से कार्यक्षमताओं की पेशकश करके कार्यान्वयन संबंधी जटिलताओं को छिपाने में मदद करता है।
जावा में अमूर्तता प्राप्त करने के लिए, अमूर्त वर्गों और इंटरफेस का व्यापक रूप से उपयोग किया जाता है। अमूर्त वर्ग का अनुप्रयोग और इंटरफ़ेस एक दूसरे से भिन्न है।
चाबी छीन लेना
- सार वर्ग आंशिक कार्यान्वयन की अनुमति देते हैं, जबकि इंटरफ़ेस कोई कार्यान्वयन प्रदान नहीं करते हैं।
- एक वर्ग केवल एक अमूर्त वर्ग को प्राप्त कर सकता है लेकिन कई इंटरफेस लागू कर सकता है।
- सार वर्गों में कंस्ट्रक्टर, फ़ील्ड और गैर-अमूर्त तरीके हो सकते हैं, जबकि इंटरफ़ेस में नहीं हो सकते।
जावा में एब्सट्रैक्ट क्लास बनाम इंटरफ़ेस
JJava में अमूर्त वर्ग और इंटरफ़ेस के बीच अंतर यह है कि अमूर्त वर्ग एक उपयोगकर्ता-परिभाषित प्रकार को संदर्भित करता है जो ऑब्जेक्ट बनाने के लिए ब्लूप्रिंट के रूप में काम करता है। एक अमूर्त वर्ग में विधियाँ और गुण होते हैं जो वस्तु के व्यवहार और अवस्थाओं का प्रतिनिधित्व करते हैं। दूसरी ओर, इंटरफ़ेस एक उपयोगकर्ता-परिभाषित प्रकार को संदर्भित करता है जिसमें इंटरफ़ेस द्वारा कार्यान्वित कक्षाओं द्वारा ओवरराइड किए गए विधि हस्ताक्षर और फ़ील्ड स्थिरांक का एक सेट हो सकता है।
सार वर्ग एक ऐसे वर्ग को संदर्भित करता है जिसमें इसकी घोषणा में सार कीवर्ड शामिल होता है। यह ठोस कक्षाओं के लिए खाका विकसित करने में मदद करता है।
इसमें कम से कम एक अमूर्त विधि होनी चाहिए, ऐसी विधि की तरह जिसमें कोई बॉडी नहीं होती। एक अमूर्त वर्ग में कई संख्या में ठोस विधियाँ हो सकती हैं। यह अपने उपयोगकर्ताओं को कोड का पुन: उपयोग करने की अनुमति देता है।
इंटरफ़ेस एक ब्लूप्रिंट को संदर्भित करता है जिसका उपयोग किसी कक्षा को लागू करने के लिए किया जाता है। कोड के साथ कोई भी ठोस विधि या विधियाँ इंटरफ़ेस में शामिल नहीं हैं। किसी इंटरफ़ेस में केवल अमूर्त विधियाँ या बिना किसी कोड वाली विधियाँ शामिल की जाती हैं।
एक इंटरफ़ेस का इंस्टेंटेशन असंभव है, लेकिन कक्षाओं को लागू करने वाले इंटरफ़ेस वर्गों को आसानी से इंस्टेंट किया जा सकता है।
तुलना तालिका
तुलना के पैरामीटर | जावा में सार वर्ग | जावा में इंटरफ़ेस |
---|---|---|
खोजशब्द | अमूर्त वर्ग घोषित करने के लिए, अमूर्त कीवर्ड का उपयोग किया जाता है। | इंटरफ़ेस घोषित करने के लिए इंटरफ़ेस कीवर्ड का उपयोग किया जाता है। |
तरीके | अमूर्त वर्ग में गैर-अमूर्त और अमूर्त दोनों विधियाँ मौजूद हो सकती हैं। | इंटरफ़ेस में केवल अमूर्त विधि प्रस्तुत की जा सकती है। इसमें स्थैतिक और डिफ़ॉल्ट विधियाँ भी हो सकती हैं जावा 8. |
चर | एक अमूर्त वर्ग एकाधिक वंशानुक्रमों का समर्थन नहीं करता है। | इंटरफ़ेस में केवल अंतिम और स्थिर चर ही हो सकते हैं। |
विरासत | इंटरफ़ेस एकाधिक इनहेरिटेंस का समर्थन करता है। | एक अन्य जावा को बढ़ाया जा सकता है और एक अमूर्त वर्ग कई जावा इंटरफेस को कार्यान्वित कर सकता है। |
विस्तार | जावा में केवल एक अन्य इंटरफ़ेस को एक इंटरफ़ेस द्वारा बढ़ाया जा सकता है। | जावा में केवल किसी अन्य इंटरफ़ेस को इंटरफ़ेस द्वारा विस्तारित करने का अवसर मिलता है। |
जावा में एब्सट्रैक्ट क्लास क्या है?
जावा में, एक अमूर्त वर्ग एक ऐसा वर्ग है जिसे अमूर्त कीवर्ड द्वारा घोषित किया जाता है। अमूर्त में गैर-अमूर्त और अमूर्त दोनों तरीकों को शामिल किया जा सकता है कक्षा में जावा।
आम तौर पर, एक अमूर्त वर्ग उपयोगी प्रोग्रामिंग डेटा विधियों और सदस्यों को संग्रहीत करने के लिए उपयोग किए जाने वाले टेम्पलेट को संदर्भित करता है। जावा में, अमूर्त वर्ग का इन्स्टेन्शियेशन सीधे तौर पर संभव नहीं है। इसके बजाय, अमूर्त वर्ग को उपवर्गित किया जा सकता है।
एक अमूर्त वर्ग डेवलपर्स को कोड कार्यान्वयन को छिपाने की अनुमति देता है, जो उन्हें डेटा अमूर्त प्रक्रिया को सुचारू रूप से निष्पादित करने में मदद करता है।
इससे कोडिंग में भी समय की बचत होती है। कोडिंग करते समय एक अमूर्त विधि को कहीं भी बुलाया जा सकता है और कोड की पुनरावृत्ति से बचा जा सकता है।
जावा में एक अमूर्त वर्ग का उपयोग करते समय, सबसे महत्वपूर्ण नियम हैं-
- एक अमूर्त वर्ग घोषित करते समय, "सार" कीवर्ड का होना बहुत महत्वपूर्ण है।
- जावा में, अमूर्त वर्ग का इन्स्टेन्शियेशन सीधे तौर पर संभव नहीं है। एक अमूर्त वर्ग में न्यूनतम एक अमूर्त विधि की आवश्यकता होती है।
- अंतिम विधियाँ भी एक अमूर्त वर्ग में शामिल हैं।
- स्टेटिक और कंस्ट्रक्टर तरीकों को अमूर्त वर्ग में शामिल किया जा सकता है।
जावा में एक अमूर्त वर्ग का मुख्य लाभ यह है कि यह छोटी लंबाई के कोड लिखने में बहुत सहायक है और यह कोड दोहराव की संभावना को भी कम करता है। यह कोड की पुन: प्रयोज्यता को भी सक्षम बनाता है।
जावा में इंटरफ़ेस क्या है?
एक अमूर्त वर्ग की तरह, जावा में एक सार में चर और विधियाँ हो सकती हैं। लेकिन एक इंटरफ़ेस में, घोषित विधियाँ डिफ़ॉल्ट रूप से अमूर्त होती हैं।
यह निर्दिष्ट करता है कि एक अमूर्त वर्ग को कैसे और क्या करना चाहिए। इसे अमूर्त वर्ग का खाका माना जाता है। इसमें विधियों का एक संग्रह है जो वर्ग लागू नहीं हो सकता है या लागू हो सकता है।
जावा में इंटरफ़ेस का उपयोग पूर्ण अमूर्तता प्राप्त करने के लिए किया जाता है। इसमें एकाधिक वंशानुक्रम भी हो सकते हैं जो अमूर्त वर्गों में समर्थित नहीं हैं।
ढीले युग्मन को प्राप्त करने के लिए एक इंटरफ़ेस का भी उपयोग किया जाता है। जावा डिज़ाइन पैटर्न में इंटरफ़ेस का व्यापक रूप से उपयोग किया जाता है और यह एक कार्य कर सकता है।
इंटरफ़ेस विधियों में कोई भी नहीं है। यह एक तंत्र है जिसका उपयोग मुख्य रूप से जावा में एकाधिक वंशानुक्रम और अमूर्तता प्राप्त करने के लिए किया जाता है।
जावा इंटरफ़ेस के मुख्य गुण हैं -
- जावा में एक इंटरफ़ेस पूरी तरह से अमूर्त है। जावा में इंटरफ़ेस घोषित करते समय सार कीवर्ड की आवश्यकता नहीं होती है।
- प्रत्येक इंटरफ़ेस विधियाँ भी पूरी तरह से अमूर्त हैं। परिणामस्वरूप, इंटरफ़ेस विधियों की घोषणा करते समय अमूर्त कीवर्ड का उपयोग करने की कोई आवश्यकता नहीं है।
- प्रत्येक इंटरफ़ेस विधि पूर्णतः सार्वजनिक है.
जावा में इंटरफ़ेस का मुख्य लाभ यह है कि इसका उपयोग डेटा एब्स्ट्रैक्शन प्राप्त करने के लिए किया जा सकता है और इसका उपयोग मल्टी- का समर्थन करने के लिए भी किया जा सकता है।विरासत जावा में कार्यात्मकताएँ। इसका उपयोग लूज़ कपलिंग में भी किया जाता है।
जावा में एब्सट्रैक्ट क्लास और इंटरफ़ेस के बीच मुख्य अंतर
- अमूर्त वर्ग में गैर-अमूर्त और अमूर्त दोनों विधियाँ मौजूद हो सकती हैं। दूसरी ओर, इंटरफ़ेस में केवल अमूर्त तरीके प्रस्तुत किए जा सकते हैं। जावा 8 के बाद से इसमें स्थिर और डिफ़ॉल्ट विधियाँ भी हो सकती हैं।
- एक अमूर्त वर्ग में गैर-स्थैतिक, स्थैतिक, गैर-अंतिम और अंतिम चर हो सकते हैं। इंटरफ़ेस में केवल अंतिम और स्थिर चर ही हो सकते हैं।
- अमूर्त वर्ग घोषित करने के लिए, अमूर्त कीवर्ड का उपयोग किया जाता है। इंटरफ़ेस घोषित करने के लिए इंटरफ़ेस कीवर्ड का उपयोग किया जाता है।
- एक अमूर्त वर्ग एकाधिक वंशानुक्रमों का समर्थन नहीं करता है। इसके विपरीत, एकाधिक वंशानुक्रम, इंटरफ़ेस द्वारा समर्थित हैं।
- एक अन्य जावा को बढ़ाया जा सकता है और कई जावा इंटरफेस को एक अमूर्त वर्ग द्वारा कार्यान्वित किया जा सकता है। फिर भी, जावा में केवल किसी अन्य इंटरफ़ेस को इंटरफ़ेस द्वारा विस्तारित करने का अवसर मिलता है।
- https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=abstract+class+in+java&btnG=#d=gs_qabs&u=%23p%3DW3WgwQb0NOAJ
- https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=interface+in+java&btnG=#d=gs_qabs&u=%23p%3Dzhwh3VcdqSkJ
अंतिम अद्यतन: 11 जून, 2023
संदीप भंडारी ने थापर विश्वविद्यालय (2006) से कंप्यूटर में इंजीनियरिंग में स्नातक की उपाधि प्राप्त की है। उनके पास प्रौद्योगिकी क्षेत्र में 20 वर्षों का अनुभव है। उन्हें डेटाबेस सिस्टम, कंप्यूटर नेटवर्क और प्रोग्रामिंग सहित विभिन्न तकनीकी क्षेत्रों में गहरी रुचि है। आप उनके बारे में और अधिक पढ़ सकते हैं जैव पृष्ठ.
यह एक प्रभावशाली लेख है, स्पष्टीकरण बहुत स्पष्ट और संक्षिप्त हैं। बहुत अच्छी तरह से किया।
क्या हम एक पल के लिए रुक सकते हैं और इस बात पर हंस सकते हैं कि शिक्षाविद कैसे लिखते हैं? यह मज़ेदार है, लेकिन बढ़िया लेख है.
अमूर्त वर्गों और इंटरफेस के बीच साथ-साथ तुलना काफी उपयोगी है। मैं ऐसे ही एक लेख की तलाश में था.
मेरा मानना है कि यह लेख मेरे पिछले प्रोजेक्ट में मेरी मदद कर सकता था। लेकिन यह अगले के लिए एक अच्छा संदर्भ है।
मुझे नहीं लगता कि यह लेख उतना उपयोगी है जितना आप कहते हैं। मुझे लगता है कि इसमें गहन व्याख्या का अभाव है।
यदि आप कुछ कोड उदाहरण प्रदान करें तो बेहतर होगा। हालाँकि स्पष्टीकरण अच्छे हैं.