Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# प्रोग्राम में एब्स्ट्रैक्ट क्लास और इंटरफेस में अंतर


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

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

एब्स्ट्रैक्ट क्लास और इंटरफेस के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

क्र.सं.मुख्य बिंदुएब्स्ट्रैक्ट क्लासइंटरफेस
1परिभाषामानक परिभाषा के संदर्भ में एक एब्स्ट्रैक्ट क्लास है, संकल्पनात्मक रूप से, एक क्लास जिसे इंस्टेंशिएट नहीं किया जा सकता और आमतौर पर एक क्लास के रूप में कार्यान्वित किया जाता है जिसमें एक या अधिक प्योर वर्चुअल (एब्स्ट्रैक्ट) फंक्शन्स होते हैं।दूसरी ओर एक इंटरफेस विवरण है कि कौन से मेंबर फंक्शन्स एक क्लास को, जो इस इंटरफेस को इनहेरिट करता है, कार्यान्वित करना चाहिए। दूसरे शब्दों में, एक इंटरफेस क्लास के व्यवहार का वर्णन करता है।
2कार्यान्वयनC# में अन्य सामान्य क्लास डिज़ाइन की तरह एब्स्ट्रैक्ट क्लास का भी अपना कार्यान्वयन होता है साथ ही इसकी घोषणा के साथ।दूसरी ओर एक इंटरफेस में केवल सिग्नेचर हो सकता है, कार्यान्वयन नहीं। जबकि इसका कार्यान्वयन उस क्लास द्वारा प्रदान किया जाता है जो इसे कार्यान्वित करती है।
3विरासतC# में विनिर्देश के अनुसार एक क्लास केवल एक अन्य क्लास को एक्सटेंड कर सकती है इसलिए मल्टीपल इनहेरिटेंस एब्स्ट्रैक्ट क्लास द्वारा प्राप्त नहीं किया जाता।दूसरी ओर इंटरफेस के मामले में एक क्लास मल्टीपल इंटरफेस को कार्यान्वित कर सकती है और इसलिए मल्टीपल इनहेरिटेंस इंटरफेस द्वारा प्राप्त किया जाता है।
4कंस्ट्रक्टरC# में अन्य क्लासेस की तरह इंस्टेंशिएशन के लिए एब्स्ट्रैक्ट क्लास का भी कंस्ट्रक्टर होता है जो इसके नॉन-स्टेटिक मेथड्स को एक्सेस करने के लिए एब्स्ट्रैक्ट क्लास का इंस्टेंस प्रदान करता है।दूसरी ओर इंटरफेस में कंस्ट्रक्टर नहीं होता इसलिए हम सीधे इंटरफेस को इंस्टेंशिएट नहीं कर सकते हालांकि इसके मेथड्स को इसे कार्यान्वित करने वाली क्लास का इंस्टेंस बनाकर एक्सेस किया जा सकता है।
5मॉडिफायर्सचूंकि एब्स्ट्रैक्ट क्लास C# में अन्य सामान्य क्लास की तरह है इसलिए इसमें पब्लिक, प्राइवेट, प्रोटेक्टेड आदि जैसे विभिन्न प्रकार के एक्सेस मॉडिफायर्स हो सकते हैं।दूसरी ओर चूंकि इंटरफेस को अन्य क्लास द्वारा इसके मेथड्स का कार्यान्वयन प्रदान करने के लिए कार्यान्वित करने की आवश्यकता होती है इसलिए इसमें केवल पब्लिक एक्सेस मॉडिफायर हो सकता है।
6प्रदर्शनचूंकि एब्स्ट्रैक्ट क्लास के अपने मेथड्स और साथ ही उनके कार्यान्वयन भी होते हैं, इसके एब्स्ट्रैक्ट मेथड्स के कार्यान्वयन के लिए इसके कार्यान्वयन क्लास का रेफरेंस होता है इसलिए प्रदर्शन इंटरफेस की तुलना में तुलनात्मक रूप से तेज है।दूसरी ओर इंटरफेस का प्रदर्शन धीमा है क्योंकि इसे संबंधित क्लास में वास्तविक मेथड को खोजने में समय लगता है।

  1. - Java में Interface और Class में अंतर

    Classएक क्लास एक ब्लूप्रिंट है जिससे व्यक्तिगत ऑब्जेक्ट्स बनाए जाते हैं। एक क्लास में निम्नलिखित वेरिएबल प्रकारों में से कोई भी हो सकता है।लोकल वेरिएबल्स − मेथड्स, कंस्ट्रक्टर्स या ब्लॉक्स के अंदर परिभाषित वेरिएबल्स को लोकल वेरिएबल्स कहा जाता है। वेरिएबल को मेथड के भीतर घोषित और इनिशियलाइज़ किया जाए

  1. - Java में Abstract Class और Interface में अंतर

    Java में, एब्स्ट्रैक्शन Abstract क्लासेज और इंटरफेस का उपयोग करके प्राप्त किया जाता है। दोनों में एब्स्ट्रैक्ट मेथड्स होते हैं जिन्हें चाइल्ड क्लास या इम्प्लीमेंटिंग क्लास को इम्प्लीमेंट करना होता है। Abstract क्लास और एक इंटरफ़ेस के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्र. सं.मुख्य बिंदुAbstract Cla

  1. - एब्स्ट्रैक्ट क्लास और इंटरफेस में अंतर

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