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