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

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

वीडियो: सार वर्ग और इंटरफ़ेस के बीच अंतर

वीडियो: सार वर्ग और इंटरफ़ेस के बीच अंतर
वीडियो: Difference Between Windows 7 or Windows 8/8.1 and Windows 10 in Hindi 2022 | What is Best ? 2024, नवंबर
Anonim

सार वर्ग बनाम इंटरफ़ेस

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

एब्सट्रैक्ट क्लास क्या है?

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

एब्स्ट्रैक्ट क्लासेस में एब्सट्रैक्ट मेथड हो सकते हैं। एक अमूर्त वर्ग का विस्तार करने वाले उपवर्ग इन (विरासत में मिली) सार विधियों को लागू कर सकते हैं। यदि बाल वर्ग ऐसे सभी सार विधियों को लागू करता है, तो यह एक ठोस वर्ग है। लेकिन अगर ऐसा नहीं होता है, तो चाइल्ड क्लास भी एब्सट्रैक्ट क्लास बन जाती है। इसका मतलब यह है कि, जब प्रोग्रामर एक वर्ग को सार के रूप में नामांकित करता है, तो वह कह रही है कि कक्षा अधूरी होगी और इसमें ऐसे तत्व होंगे जिन्हें इनहेरिट करने वाले उपवर्गों द्वारा पूरा करने की आवश्यकता है।यह दो प्रोग्रामर के बीच एक अनुबंध बनाने का एक अच्छा तरीका है, जो सॉफ्टवेयर विकास में कार्यों को सरल करता है। प्रोग्रामर, जो इनहेरिट करने के लिए कोड लिखता है, को विधि परिभाषाओं का ठीक से पालन करने की आवश्यकता है (लेकिन निश्चित रूप से उसका अपना कार्यान्वयन हो सकता है)।

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

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

एब्सट्रैक्ट क्लास और इंटरफ़ेस में क्या अंतर है?

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

सिफारिश की: