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

Anonim

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

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

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

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

-2 ->

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

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

सारांश:

1 सार कक्षाएं (या प्रकार) प्रोग्राम घोषित करते हैं; इंटरफेस अमूर्त प्रकार हैं जो सभी वर्गों को अपने इंटरफेस को निर्दिष्ट करने के लिए कार्यान्वित करना चाहिए।

2। सार प्रकार स्पष्ट रूप से कीवर्ड का उपयोग कर संकेतित किया जा सकता है; इंटरफेस स्वाभाविक रूप से सार हैं, इसलिए कीवर्ड का उपयोग करके सभी को संकेतित करने की आवश्यकता नहीं है (जब तक कोई विशिष्ट श्रेणी एक इंटरफ़ेस लागू नहीं करता है, लेकिन इसके सभी तरीकों को लागू नहीं करता है)।