जावा में सार वर्ग और इंटरफ़ेस के बीच अंतर

Anonim

सार वर्ग बनाम अंतरफलक जावा में

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

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

-2 ->

मतभेद

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

-3 ->

किसी अमूर्त वर्ग के तरीकों या सदस्यों के लिए दृश्यता भी संभव है, जो कि सार्वजनिक, संरक्षित, निजी या कोई भी भिन्न हो सकती है दूसरी तरफ, इंटरफ़ेस की दृश्यता, केवल "सार्वजनिक" दृश्यता के एक मोड में पूर्व निर्धारित हो सकती है '"

एक अमूर्त वर्ग स्वचालित रूप से ऑब्जेक्ट क्लास के वारिस होगा यह, प्रभाव में, इसका अर्थ है कि क्लोन () और बराबर () जैसे विधियां शामिल हैं। एक इंटरफ़ेस में ऑब्जेक्ट क्लास का कोई भी भाग संभव नहीं है। इसके बाद, अमूर्त वर्ग में एक कन्स्ट्रक्टर होने की क्षमता होती है, लेकिन एक अंतरफलक में एक नहीं हो सकता है।

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

प्रदर्शन में, इंटरफेस कार्यान्वयन में धीमी गति से होते हैं क्योंकि अमूर्त वर्ग का विरोध मुख्य रूप से किसी कक्षा में संबंधित विधि खोजने की अतिरिक्त दिशा के कारण होता है। आधुनिक जावा आभासी मशीनों के कारण अंतर लगातार बढ़ गया है, जो लगातार अपग्रेड कर रहे हैं।

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

सारांश

  1. सार वर्ग के क्षेत्र स्थिर या अंतिम नहीं हैं जो अंतरफलक के विरोध में हैं जो स्थैतिक और अंतिम सारणी हैं।

  2. इंटरफ़ेस में कोई कार्यान्वयन कोड का उपयोग नहीं किया जा सकता है, जबकि इसका उपयोग अमूर्त वर्ग में किया जा सकता है।

  3. अंतरफलक दृश्यता केवल सार्वजनिक हो सकती है जबकि सारणीगत दृश्य दृश्यता भिन्न हो सकती है

  4. एक सार वर्ग स्वचालित रूप से ऑब्जेक्ट वर्ग को प्राप्त करेगा, लेकिन यह इंटरफ़ेस में संभव नहीं है।

  5. अमूर्त वर्ग कार्यान्वयन में अंतरफलक की तुलना में तेज़ है