अॅब्स्ट्रक्ट क्लास आणि इंटरफेसमध्ये सी # मधील फरक.
सारखा एक अमूर्त वर्ग इंटरफेस सारखा खूप दिसत आहे, परंतु ओपीच्या सुरुवातीच्या दृष्टीने संकल्पना थोडा गोंधळ आहे. संकल्पनात्मकदृष्ट्या, एक अमूर्त वर्ग कोणत्याही अंमलबजावणीशिवाय, अर्थातच इंटरफेस प्रमाणेच दिसतो, तथापि त्यांच्यात भेदांचा योग्य वाटा असतो. एक गोषवारा वर्ग अंशतः किंवा पूर्णपणे अंमलबजावणी होऊ शकतो, तरी इंटरफेस पूर्णपणे लागू केला जाणे आवश्यक आहे. दोन्ही बाजूंमधील सर्वात लक्षणीय फरक हा आहे की एक अमूर्त वर्ग मुलभूत अंमलबजावणी करू शकतो, तर एक इंटरफेस फक्त अशा पद्धतींची परिभाषा आहे ज्यात केवळ सदस्य घोषणा समाविष्ट आहे. चला तर दोन्हीच्या सैद्धांतिक पैलूंवर तपशीलवार चर्चा करूया.
अॅब्स्ट्रक्ट क्लास म्हणजे काय?
एक अमूर्त वर्ग हा एक विशेष प्रकारचा वर्ग आहे जो इतर वर्गांचा आधार म्हणून कार्य करतो आणि तत्काल चालू शकत नाही. अॅमस्ट्रॅक्ट क्लासच्या अंमलबजावणी तर्कशाखा त्याच्या उत्तीर्ण वर्गांद्वारे प्रदान करण्यात आली आहेत. वर्ग सारख बनवण्यासाठी, "गोषवारा" सुधारक वापरला जातो ज्याचा अर्थ असा आहे की काही क्षुल्लक अंमलबजावणी कार्यान्वित करणे आवश्यक आहे. यात गोषवारा आणि अदृश्य दोन्ही सदस्यांचा समावेश आहे. एक ऍमस्ट्रॅक्ट क्लास मूलभूत कार्यक्षमता प्रदान करण्याच्या हेतूने आहे जो आणखी व्युत्पन्न क्लासेसद्वारे पुढील सामायिक आणि अधिलिखित करता येऊ शकतो. कोड अनुलिपण कोणत्याही प्रकारचे टाळण्यासाठी हे उपयुक्त आहे. ते इंटरफेस सारखे खूप दिसत आहेत परंतु जोडलेल्या कार्यक्षमतेसह.
इंटरफेस म्हणजे काय?
दुसरीकडे, एक परस्परसंवाद, वर्गामध्ये नाही ज्यामध्ये फंक्शनॅलिटीचे केवळ स्वाक्षरी असते. हे अंमलबजावणी न करता एक नमुना आहे कल्पनाशिलतेने, सदस्यांची घोषवाक्य असलेल्या पद्धतींची ही केवळ व्याख्या आहे. ही एक रिक्त शेल आहे जी त्याच्या सदस्यांची अंमलबजावणी करत नाही. हे एका अमूर्त बेस क्लासमसारखे आहे जे केवळ अमूर्त सदस्य जसे की पद्धती, इव्हेंट्स, इंडेक्सर्स, गुणधर्म इत्यादी समाविष्ट करते. ते थेट इन्स्टिट्यूएशन होऊ शकत नाहीत आणि कोणत्याही सदस्याद्वारे त्याचे सदस्य लागू करता येत नाहीत. याव्यतिरिक्त, क्लासद्वारे एकापेक्षा जास्त इंटरफेस लागू केले जाऊ शकतात, तथापि, एक क्लास केवळ एकच क्लासचे वारस करू शकतो.
अॅबस्ट्रॅक्ट क्लास बनाम इंटरफेस: ए सारल क्लास आणि इंटरफेसमध्ये सी # मध्ये विविधता आढळते.
- एकाधिक वारसा - एक क्लास फक्त एक अमूर्त वर्ग वापरू शकतो, त्यामुळे बहुविध वारसा समर्थित नाही. दुसरीकडे, एक इंटरफेस बहुविध वारसाहक्कांना पाठिंबा देऊ शकतो, याचा अर्थ असा की एखाद्या श्रेणीतून कितीही वारसा मिळू शकतात.
- परिभाषा पैकी सारखा वर्ग आणि इंटरफेस C # मध्ये - एक अमूर्त वर्ग एक विशेष प्रकारचे वर्ग आहे ज्यामध्ये अंमलबजावणीची कोणतीही व्याख्या नाही. अंमलबजावणी लॉजिक त्याच्या उत्तीर्ण वर्गांद्वारे प्रदान केले आहे. यात अमूर्त आणि अ-अमूर्त पद्धतीही असू शकतात.दुसरीकडे, इंटरफेस हा एक नमुना आहे जो काहीच करु शकत नाही. तांत्रिकदृष्ट्या, हे फक्त एक रिक्त शेल आहे
- अंमलबजावणी < - एक अमूर्त वर्ग मध्ये परिभाषा आणि तिचे अंमलबजावणी दोन्ही असू शकतात. हा एक अपूर्ण वर्ग आहे जो तत्काळ होऊ शकत नाही. इंटरफेसमध्ये कोणत्याही कोडशिवाय कार्यक्षमतेचे स्वामित्व असू शकते.
- प्रवेश मॉडिअर्स - एक अमूर्त वर्गमध्ये अनेक सुलभ संशोधक जसे की subs, functions, properties, इत्यादी असू शकतात, व इंटरफेसमध्ये प्रवेश मॉडिफायर्स असणे आवश्यक नाही आणि सर्व पद्धतींना सामान्यपणे सार्वजनिक म्हणून परिभाषित करणे आवश्यक आहे एकजिनसीपणा < - एक अमूर्त वर्ग समान प्रकार, वर्तणूक आणि स्थितीच्या कार्यान्वयन करिता वापरला जातो, तर इंटरफेस लागू करण्याकरिता वापरला जातो जो केवळ पद्धत स्वाक्षर्या सामायिक करतात.
- घोषणापत्र < - एक अमूर्त वर्ग इतर सर्व वर्गांसाठी आधार वर्ग म्हणून कार्य करतो जेणेकरून इंटरफेस कोणत्याही वेरिएबल्स घोषित करण्याची परवानगी नसल्यास ते घोषित किंवा वापरता येईल. कन्स्ट्रक्टर घोषणापत्र < - एक अमूर्त वर्ग कंत्राटदार घोषणापत्र असू शकतो, परंतु इंटरफेसमध्ये कन्स्ट्रक्टर घोषणापत्र असू शकत नाही.
- कोर बनाम परिधीय < - एक अमूर्त वर्ग एक क्लासची कोर ओळख परिभाषित करण्यासाठी वापरला जातो आणि समान डेटा प्रकाराच्या ऑब्जेक्टसाठी वापरला जाऊ शकतो. दुसरीकडे, एखाद्या वर्गाची परिघीय क्षमता परिभाषित करण्यासाठी इंटरफेसचा वापर केला जातो. कठोर वि. अपली < - किमान एक विकसकांच्या दृष्टीकोणातून, एक अमूर्त वर्ग कार्यक्षमतेच्या दृष्टीने अधिक लवचीक आहे, तर एक इंटरफेस अधिक कठोर आहे.
- अॅबस्ट्रॅक्ट क्लास वि. इंटरफेस: टेबल फॉर्म अॅबस्ट्रॅक्ट क्लास < इंटरफेस
- अॅम्प्लॅक्ट क्लासमध्ये सभासद घोषणेचे कार्य, सब्स आणि प्रॉपर्टीजसाठी सर्व प्रवेश मॉडिफायर्स असू शकतात. फंक्शन्स, सबस, प्रॉपर्टीज इ. च्या सदस्यांच्या घोषणेसाठी इंटरफेसमध्ये प्रवेश मॉडिफायर्स असणे अनुमत नाही. सर्व सदस्यांना पोकळ सार्वजनिक म्हणून असे गृहित धरले जाते.
- श्रेणी सर्वात जास्त वापर करून केवळ एक अमूर्त वर्ग असू शकतात. एखाद्या श्रेणीला कोणत्याही प्रकारच्या इंटरफेसचा वारसा असतो.