जावा में सार वर्ग बनाम इंटरफ़ेस: अंतर और तुलना

अमूर्तता को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की सबसे महत्वपूर्ण विशेषताओं में से एक माना जाता है। यह सुलभ इंटरफेस के माध्यम से कार्यक्षमताओं की पेशकश करके कार्यान्वयन संबंधी जटिलताओं को छिपाने में मदद करता है।

जावा में अमूर्तता प्राप्त करने के लिए, अमूर्त वर्गों और इंटरफेस का व्यापक रूप से उपयोग किया जाता है। अमूर्त वर्ग का अनुप्रयोग और इंटरफ़ेस एक दूसरे से भिन्न है।

चाबी छीन लेना

  1. सार वर्ग आंशिक कार्यान्वयन की अनुमति देते हैं, जबकि इंटरफ़ेस कोई कार्यान्वयन प्रदान नहीं करते हैं।
  2. एक वर्ग केवल एक अमूर्त वर्ग को प्राप्त कर सकता है लेकिन कई इंटरफेस लागू कर सकता है।
  3. सार वर्गों में कंस्ट्रक्टर, फ़ील्ड और गैर-अमूर्त तरीके हो सकते हैं, जबकि इंटरफ़ेस में नहीं हो सकते।

जावा में एब्सट्रैक्ट क्लास बनाम इंटरफ़ेस

JJava में अमूर्त वर्ग और इंटरफ़ेस के बीच अंतर यह है कि अमूर्त वर्ग एक उपयोगकर्ता-परिभाषित प्रकार को संदर्भित करता है जो ऑब्जेक्ट बनाने के लिए ब्लूप्रिंट के रूप में काम करता है। एक अमूर्त वर्ग में विधियाँ और गुण होते हैं जो वस्तु के व्यवहार और अवस्थाओं का प्रतिनिधित्व करते हैं। दूसरी ओर, इंटरफ़ेस एक उपयोगकर्ता-परिभाषित प्रकार को संदर्भित करता है जिसमें इंटरफ़ेस द्वारा कार्यान्वित कक्षाओं द्वारा ओवरराइड किए गए विधि हस्ताक्षर और फ़ील्ड स्थिरांक का एक सेट हो सकता है।

जावा में एब्सट्रैक्ट क्लास बनाम इंटरफ़ेस

सार वर्ग एक ऐसे वर्ग को संदर्भित करता है जिसमें इसकी घोषणा में सार कीवर्ड शामिल होता है। यह ठोस कक्षाओं के लिए खाका विकसित करने में मदद करता है।

इसमें कम से कम एक अमूर्त विधि होनी चाहिए, ऐसी विधि की तरह जिसमें कोई बॉडी नहीं होती। एक अमूर्त वर्ग में कई संख्या में ठोस विधियाँ हो सकती हैं। यह अपने उपयोगकर्ताओं को कोड का पुन: उपयोग करने की अनुमति देता है।

इंटरफ़ेस एक ब्लूप्रिंट को संदर्भित करता है जिसका उपयोग किसी कक्षा को लागू करने के लिए किया जाता है। कोड के साथ कोई भी ठोस विधि या विधियाँ इंटरफ़ेस में शामिल नहीं हैं। किसी इंटरफ़ेस में केवल अमूर्त विधियाँ या बिना किसी कोड वाली विधियाँ शामिल की जाती हैं।

एक इंटरफ़ेस का इंस्टेंटेशन असंभव है, लेकिन कक्षाओं को लागू करने वाले इंटरफ़ेस वर्गों को आसानी से इंस्टेंट किया जा सकता है।

तुलना तालिका

तुलना के पैरामीटरजावा में सार वर्गजावा में इंटरफ़ेस
खोजशब्दअमूर्त वर्ग घोषित करने के लिए, अमूर्त कीवर्ड का उपयोग किया जाता है।     इंटरफ़ेस घोषित करने के लिए इंटरफ़ेस कीवर्ड का उपयोग किया जाता है।
तरीकेअमूर्त वर्ग में गैर-अमूर्त और अमूर्त दोनों विधियाँ मौजूद हो सकती हैं।     इंटरफ़ेस में केवल अमूर्त विधि प्रस्तुत की जा सकती है। इसमें स्थैतिक और डिफ़ॉल्ट विधियाँ भी हो सकती हैं जावा 8.
चरएक अमूर्त वर्ग एकाधिक वंशानुक्रमों का समर्थन नहीं करता है।     इंटरफ़ेस में केवल अंतिम और स्थिर चर ही हो सकते हैं।
विरासतइंटरफ़ेस एकाधिक इनहेरिटेंस का समर्थन करता है। एक अन्य जावा को बढ़ाया जा सकता है और एक अमूर्त वर्ग कई जावा इंटरफेस को कार्यान्वित कर सकता है।    
विस्तारजावा में केवल एक अन्य इंटरफ़ेस को एक इंटरफ़ेस द्वारा बढ़ाया जा सकता है। जावा में केवल किसी अन्य इंटरफ़ेस को इंटरफ़ेस द्वारा विस्तारित करने का अवसर मिलता है।

जावा में एब्सट्रैक्ट क्लास क्या है?

जावा में, एक अमूर्त वर्ग एक ऐसा वर्ग है जिसे अमूर्त कीवर्ड द्वारा घोषित किया जाता है। अमूर्त में गैर-अमूर्त और अमूर्त दोनों तरीकों को शामिल किया जा सकता है कक्षा में जावा।

यह भी पढ़ें:  पर्ल बनाम पायथन: अंतर और तुलना

आम तौर पर, एक अमूर्त वर्ग उपयोगी प्रोग्रामिंग डेटा विधियों और सदस्यों को संग्रहीत करने के लिए उपयोग किए जाने वाले टेम्पलेट को संदर्भित करता है। जावा में, अमूर्त वर्ग का इन्स्टेन्शियेशन सीधे तौर पर संभव नहीं है। इसके बजाय, अमूर्त वर्ग को उपवर्गित किया जा सकता है। 

एक अमूर्त वर्ग डेवलपर्स को कोड कार्यान्वयन को छिपाने की अनुमति देता है, जो उन्हें डेटा अमूर्त प्रक्रिया को सुचारू रूप से निष्पादित करने में मदद करता है।

इससे कोडिंग में भी समय की बचत होती है। कोडिंग करते समय एक अमूर्त विधि को कहीं भी बुलाया जा सकता है और कोड की पुनरावृत्ति से बचा जा सकता है।

जावा में एक अमूर्त वर्ग का उपयोग करते समय, सबसे महत्वपूर्ण नियम हैं-

  • एक अमूर्त वर्ग घोषित करते समय, "सार" कीवर्ड का होना बहुत महत्वपूर्ण है।
  • जावा में, अमूर्त वर्ग का इन्स्टेन्शियेशन सीधे तौर पर संभव नहीं है। एक अमूर्त वर्ग में न्यूनतम एक अमूर्त विधि की आवश्यकता होती है।
  • अंतिम विधियाँ भी एक अमूर्त वर्ग में शामिल हैं।
  • स्टेटिक और कंस्ट्रक्टर तरीकों को अमूर्त वर्ग में शामिल किया जा सकता है।

जावा में एक अमूर्त वर्ग का मुख्य लाभ यह है कि यह छोटी लंबाई के कोड लिखने में बहुत सहायक है और यह कोड दोहराव की संभावना को भी कम करता है। यह कोड की पुन: प्रयोज्यता को भी सक्षम बनाता है। 

जावा में इंटरफ़ेस क्या है?

एक अमूर्त वर्ग की तरह, जावा में एक सार में चर और विधियाँ हो सकती हैं। लेकिन एक इंटरफ़ेस में, घोषित विधियाँ डिफ़ॉल्ट रूप से अमूर्त होती हैं।

यह निर्दिष्ट करता है कि एक अमूर्त वर्ग को कैसे और क्या करना चाहिए। इसे अमूर्त वर्ग का खाका माना जाता है। इसमें विधियों का एक संग्रह है जो वर्ग लागू नहीं हो सकता है या लागू हो सकता है।

जावा में इंटरफ़ेस का उपयोग पूर्ण अमूर्तता प्राप्त करने के लिए किया जाता है। इसमें एकाधिक वंशानुक्रम भी हो सकते हैं जो अमूर्त वर्गों में समर्थित नहीं हैं।

यह भी पढ़ें:  VMware ESX बनाम VMware ESXi: अंतर और तुलना

ढीले युग्मन को प्राप्त करने के लिए एक इंटरफ़ेस का भी उपयोग किया जाता है। जावा डिज़ाइन पैटर्न में इंटरफ़ेस का व्यापक रूप से उपयोग किया जाता है और यह एक कार्य कर सकता है।

इंटरफ़ेस विधियों में कोई भी नहीं है। यह एक तंत्र है जिसका उपयोग मुख्य रूप से जावा में एकाधिक वंशानुक्रम और अमूर्तता प्राप्त करने के लिए किया जाता है।

जावा इंटरफ़ेस के मुख्य गुण हैं -

  • जावा में एक इंटरफ़ेस पूरी तरह से अमूर्त है। जावा में इंटरफ़ेस घोषित करते समय सार कीवर्ड की आवश्यकता नहीं होती है।
  • प्रत्येक इंटरफ़ेस विधियाँ भी पूरी तरह से अमूर्त हैं। परिणामस्वरूप, इंटरफ़ेस विधियों की घोषणा करते समय अमूर्त कीवर्ड का उपयोग करने की कोई आवश्यकता नहीं है।
  • प्रत्येक इंटरफ़ेस विधि पूर्णतः सार्वजनिक है.

जावा में इंटरफ़ेस का मुख्य लाभ यह है कि इसका उपयोग डेटा एब्स्ट्रैक्शन प्राप्त करने के लिए किया जा सकता है और इसका उपयोग मल्टी- का समर्थन करने के लिए भी किया जा सकता है।विरासत जावा में कार्यात्मकताएँ। इसका उपयोग लूज़ कपलिंग में भी किया जाता है।

जावा में एब्सट्रैक्ट क्लास और इंटरफ़ेस के बीच मुख्य अंतर

  1. अमूर्त वर्ग में गैर-अमूर्त और अमूर्त दोनों विधियाँ मौजूद हो सकती हैं। दूसरी ओर, इंटरफ़ेस में केवल अमूर्त तरीके प्रस्तुत किए जा सकते हैं। जावा 8 के बाद से इसमें स्थिर और डिफ़ॉल्ट विधियाँ भी हो सकती हैं।
  2. एक अमूर्त वर्ग में गैर-स्थैतिक, स्थैतिक, गैर-अंतिम और अंतिम चर हो सकते हैं। इंटरफ़ेस में केवल अंतिम और स्थिर चर ही हो सकते हैं।
  3. अमूर्त वर्ग घोषित करने के लिए, अमूर्त कीवर्ड का उपयोग किया जाता है। इंटरफ़ेस घोषित करने के लिए इंटरफ़ेस कीवर्ड का उपयोग किया जाता है।
  4. एक अमूर्त वर्ग एकाधिक वंशानुक्रमों का समर्थन नहीं करता है। इसके विपरीत, एकाधिक वंशानुक्रम, इंटरफ़ेस द्वारा समर्थित हैं।
  5. एक अन्य जावा को बढ़ाया जा सकता है और कई जावा इंटरफेस को एक अमूर्त वर्ग द्वारा कार्यान्वित किया जा सकता है। फिर भी, जावा में केवल किसी अन्य इंटरफ़ेस को इंटरफ़ेस द्वारा विस्तारित करने का अवसर मिलता है।
संदर्भ
  1. https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=abstract+class+in+java&btnG=#d=gs_qabs&u=%23p%3DW3WgwQb0NOAJ
  2. https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=interface+in+java&btnG=#d=gs_qabs&u=%23p%3Dzhwh3VcdqSkJ

अंतिम अद्यतन: 11 जून, 2023

बिंदु 1
एक अनुरोध?

मैंने आपको मूल्य प्रदान करने के लिए इस ब्लॉग पोस्ट को लिखने में बहुत मेहनत की है। यदि आप इसे सोशल मीडिया पर या अपने मित्रों/परिवार के साथ साझा करने पर विचार करते हैं, तो यह मेरे लिए बहुत उपयोगी होगा। साझा करना है ♥️

"जावा में सार वर्ग बनाम इंटरफ़ेस: अंतर और तुलना" पर 6 विचार

  1. क्या हम एक पल के लिए रुक सकते हैं और इस बात पर हंस सकते हैं कि शिक्षाविद कैसे लिखते हैं? यह मज़ेदार है, लेकिन बढ़िया लेख है.

    जवाब दें
  2. मेरा मानना ​​है कि यह लेख मेरे पिछले प्रोजेक्ट में मेरी मदद कर सकता था। लेकिन यह अगले के लिए एक अच्छा संदर्भ है।

    जवाब दें

एक टिप्पणी छोड़ दो

क्या आप इस लेख को बाद के लिए सहेजना चाहते हैं? अपने लेख बॉक्स में सहेजने के लिए नीचे दाएं कोने में दिल पर क्लिक करें!