अॅब्स्ट्रक्ट क्लास आणि इंटरफेसमध्ये फरक

Anonim

सारखा वर्ग वि. इंटरफेस

अमूर्त वर्ग (किंवा प्रकार) कार्यक्रमाद्वारे घोषित केलेल्या नाममात्र प्रकारच्या पद्धतीचा एक प्रकार आहे. नाव सुचवते तरीसुध्दा, एक अमूर्त वर्ग कदाचित अमूर्त पद्धती किंवा गुणधर्मांचा समावेश करू शकत नाही. फरक वर्ग म्हणजे वेगवेगळ्या भाषा रचना ज्या अमूर्त प्रकारचे अंमलबजावणी करण्यासाठी वापरल्या जाऊ शकतात. अॅब्स्ट्रक्ट क्लास डिझाइन समस्येचे लक्षण असू शकते जे उत्तम ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंगसह आणि त्यांच्या अपूर्ण निसर्गाने ठेवते.

इंटरफेस हा एक अमूर्त प्रकार आहे जो वर्गाने इंटरफेस (सामान्यपणे बोलणारा) निर्दिष्ट करण्यासाठी अंमलात असणे आवश्यक आहे. इंटरफेसमध्ये केवळ पद्धत आणि स्वाभाविक घोषणा (स्टॅटिक आणि अंतिम दोन्ही) असू शकतात. इंटरफेस अनेक वारसा अनुकरण करते आणि विविध प्रकारच्या वर्गांमध्ये सामायिक समानता सांकेतिक भाषेत वापरण्यासाठी वापरले जातात.

अमूर्त प्रकार अनेक वेगवेगळ्या प्रकारे तयार, चिन्हांकित किंवा अनुकरण करण्यास समर्थ आहेत. क्लासच्या परिभाषातील एक किंवा अधिक पद्धतींचा समावेश करून, अन्य अमूर्त प्रकारावरून वर्ग परिभाषा पूर्ण करण्यासाठी आवश्यक नसलेली फीचर्स वगळता किंवा ऑब्जेक्ट देणारं विशिष्ट पद्धतीने पाठवून, एक प्रोग्रामर अमूर्त प्रकार याचा अर्थ लावू शकतो. प्रोग्रॅमिंग भाषा जी अशा पद्धतीने अंमलात आणत नाही जी प्रत्यक्ष पद्धतीने अंमलात आणत नाही.

इंटरफेसची अमूर्त पद्धती वापरून परिभाषित करता येते. क्लासेस इंटरफेसमध्ये देखील लागू केले जाऊ शकतात. जर एक क्लास इंटरफेस अंमलात आणला आणि त्याच्या सर्व पद्धती अंमलात आणला नाही तर, सिग्निचर अॅब्टेटिक वापरणे आवश्यक आहे, अन्यथा सिग्निफायर आवश्यक नाही (कारण सर्व इंटरफेस मूळभूत आहेत). क्लासेस अनेक इंटरफेसदेखील लागू करू शकतात.

इंटरफेस जेनेटिक इंटरफेस निर्दिष्ट करण्यासाठी वापरले जातात, तर अमूर्त प्रकारचा वापर प्रोटोकॉल परिभाषित आणि लागू करण्यासाठी केला जाऊ शकतो (जे ऑपरेशनचा एक संच आहे जे आवश्यक प्रोटोकॉल लागू करणारे सर्व ऑब्जेक्ट समर्थन आवश्यक आहे) अॅब्स्ट्रक्ट प्रकार उपप्रकार नसलेल्या भाषांमध्ये येत नाहीत. अशा उपप्रकारांना प्रोग्राम अंमलबजावणीची अचूकता सुनिश्चित करून, सर्व आवश्यक कार्यक्षमता अंमलात आणण्यासाठी भाग पाडले जाते. अमूर्त प्रकार तयार केले जाऊ शकतात अशी अनेक पद्धती आहेत: पूर्ण अमूर्त मूल वर्ग हे असे वर्ग आहेत जे स्पष्टपणे घोषित केले जाणे किंवा अमूर्त (अपरिवर्तित) पद्धती समाविष्ट आहेत; कॉमन लिस्प ऑब्जेक्ट सिस्टीममध्ये फ्लेवर्स सिस्टिमवर आधारलेल्या मिक्सिन्सचा समावेश होतो; जावा, अर्थातच; आणि गुणधर्म, जे स्मॉलटाकला विस्तार म्हणून कार्य करते.

सारांश:

1 अॅब्स्ट्रक्ट क्लास (किंवा प्रकार) प्रोग्राम घोषित करतात; इंटरफेसेस हे अमूर्त प्रकार आहेत जे त्यांचे इंटरफेस निर्दिष्ट करण्यासाठी सर्व वर्गांनी कार्यान्वित केले पाहिजेत.

2 स्पष्टपणे कीवर्डचा वापर करून अॅब्स्ट्रक्ट प्रकार चिन्हांकित केले जाऊ शकतात; इंटरफेस मुळात अमूर्त आहेत, म्हणून त्यास कीवर्ड वापरुन चिन्हांकित करण्याची गरज नाही (जोपर्यंत विशिष्ट क्लास इंटरफेस लागू करत नाही परंतु त्याची सर्व पद्धती अंमलात आणत नाही).<