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