क्लास और इंटरफ़ेस दोनों परिभाषित करते हैं कि कोई वस्तु कैसी दिखती है और किसी वस्तु का व्यवहार भी। यदि हम दोनों संरचनाओं का अच्छी तरह से अध्ययन और समझ लें, तो प्रोग्रामिंग से निपटना आसान हो जाएगा।
वे ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा में दो बुनियादी संरचनाएं हैं। साथ ही, बेहतर समझ हमारी कोडिंग गुणवत्ता और डेवलपर के अनुभव को बढ़ाएगी।
चाबी छीन लेना
- कक्षाएं किसी ऑब्जेक्ट के कार्यान्वयन विवरण को परिभाषित करती हैं, जबकि इंटरफ़ेस केवल उन तरीकों को निर्दिष्ट करता है जिन्हें किसी ऑब्जेक्ट को लागू करना होगा।
- एक क्लास कई इंटरफेस से इनहेरिट कर सकती है लेकिन केवल एक पैरेंट क्लास से।
- इंटरफ़ेस कोड पुन: प्रयोज्यता और अमूर्तता पर जोर देते हैं, जबकि कक्षाएं ठोस कार्यान्वयन पर ध्यान केंद्रित करती हैं।
वर्ग बनाम इंटरफ़ेस
क्लास मल्टीपल इनहेरिटेंस का समर्थन नहीं करता है लेकिन इनहेरिटेंस द्वारा समर्थित है। किसी क्लास को घोषित करने के लिए, आप "क्लास" कीवर्ड का उपयोग कर सकते हैं, हालाँकि, इंटरफ़ेस को घोषित करने के लिए, "इंटरफ़ेस" नामक कीवर्ड का उपयोग किया जाता है। कक्षा को त्वरित किया जा सकता है लेकिन इंटरफ़ेस को नहीं। कक्षा में प्रशिक्षक होते हैं, और इंटरफ़ेस में नहीं।
![वर्ग बनाम इंटरफ़ेस](https://askanydifference.com/wp-content/uploads/2022/10/Class-vs-Interface.jpg)
क्लास एक प्रोग्राम में एक बुनियादी संरचना है जिससे ऑब्जेक्ट बनाए जाते हैं। वर्ग स्वयं कुछ पैकेजों से संबंधित होता है जिसमें एक साथ पैक किए गए बंडलों का एक समान समूह होता है।
किसी वर्ग की घोषणा में कीवर्ड, संशोधक और एक वर्ग का नाम शामिल होता है।
एक वर्ग को आगे दो श्रेणियों में वर्गीकृत किया जा सकता है:
मैं। बिल्ट-इन-क्लास
द्वितीय। उपयोगकर्ता-परिभाषित वर्ग
एक समय में कई वर्गों के कार्यान्वयन के लिए इंटरफ़ेस का विचार पेश किया गया था।
इसमें किसी प्रोग्राम की विधि घोषणा शामिल है। न केवल अमूर्त विधियाँ बल्कि एक इंटरफ़ेस में स्थिर विधियाँ भी हो सकती हैं।
उन्हें हमेशा डिफ़ॉल्ट रूप से सार्वजनिक घोषित किया जाता है।
तुलना तालिका
तुलना के पैरामीटर | वर्ग | इंटरफेस |
---|---|---|
परिभाषा | एक वर्ग मूल रूप से किसी वस्तु के व्यवहार का वर्णन और परिभाषित करता है | इंटरफ़ेस में मूल रूप से एक वर्ग द्वारा परिभाषित विशेषताएँ और व्यवहार होते हैं |
खोजशब्द | वर्ग घोषित करने के लिए कीवर्ड "वर्ग" का उपयोग किया जाता है | इंटरफ़ेस घोषित करने के लिए कीवर्ड "इंटरफ़ेस" का उपयोग किया जाता है |
तरीके | एक वर्ग को सार और ठोस दोनों तरीकों की अनुमति है। इसका मतलब है कि विधि में शरीर हो सकता है | एक इंटरफ़ेस में केवल अमूर्त विधियाँ हो सकती हैं। इसका मतलब है कि विधि में शरीर नहीं हो सकता |
पहुँच विनिर्देशक | कक्षा के सदस्य या तो सार्वजनिक, संरक्षित या डिफ़ॉल्ट हो सकते हैं | इंटरफ़ेस के सभी सदस्य डिफ़ॉल्ट रूप से सार्वजनिक होते हैं |
विरासत | एक वर्ग एकाधिक वंशानुक्रम का समर्थन नहीं करता है। यह किसी अन्य वर्ग को इनहेरिट करने के लिए विस्तृत कीवर्ड का उपयोग करता है | एक इंटरफ़ेस एकाधिक वंशानुक्रम का समर्थन करता है। हालाँकि यह केवल एक इंटरफ़ेस इनहेरिट कर सकता है |
क्लास क्या है?
क्लास एक ब्लूप्रिंट या योजना है जिससे ऑब्जेक्ट बनाए जाते हैं। यह समान गुणों वाली वस्तुओं का एक समूह है। यह एक तार्किक इकाई है और भौतिक नहीं हो सकती। एक कक्षा का नाम परंपरागत रूप से बड़े अक्षर से शुरू होता है।
यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की मूल अवधारणा है। किसी वस्तु का व्यवहार निर्धारित करता है। इसमें कई विधियां हो सकती हैं और इसके मूल्यों तक पहुंच हो सकती है।
एक वर्ग में निम्न प्रकार के चर हो सकते हैं:
एक स्थानीय चर, उदाहरण चर और वर्ग चर।
एक वर्ग का सिंटैक्स इस प्रकार है:
कक्षा {
खेत;
तरीका;
}
किसी क्लास के अंतर्गत एक ऑब्जेक्ट बनाने के लिए, हमें 'नया' के नाम से जाने जाने वाले कीवर्ड का उपयोग करना होगा निर्माता. एक निर्माता इसका नाम किसी वर्ग के समान ही है। इसका कार्य एक विधि के समान है।
उदाहरण के लिए, यदि क्लास का नाम प्रोग्राम है, तो कंस्ट्रक्टर प्रोग्राम () है। क्लास के सदस्यों तक पहुँचने के लिए, हमें क्लास के साथ ऑब्जेक्ट के नाम का उपयोग करने की आवश्यकता होती है।
इंटरफ़ेस क्या है?
इंटरफ़ेस को समान विधियों के समूह के रूप में परिभाषित किया गया है लेकिन खाली निकायों के साथ।
जब हम एक इंटरफ़ेस लागू करते हैं, तो यह एक क्लास को अधिक उचित बनाता है। यह, बदले में, कक्षा के व्यवहार को अधिक औपचारिक बनाता है। यह कंपाइलर द्वारा लागू किया गया एक अनुबंध है जो क्लास को बाहरी दुनिया से जोड़ता है।
किसी वर्ग के सफलतापूर्वक संकलित होने से पहले, इंटरफ़ेस द्वारा परिभाषित विधियाँ स्रोत कोड में दिखाई देनी चाहिए। एक वर्ग को संकलित करने के लिए, हमें शुरुआत में सार्वजनिक कीवर्ड जोड़ना होगा। कोई निजी चर और विधियाँ नहीं हो सकती हैं।
इसमें अमूर्त तरीकों के साथ-साथ स्थैतिक भी शामिल हैं स्थिर. एक इंटरफ़ेस में कोई विधि निकाय नहीं हो सकता। इसका उपयोग एक प्रोग्राम में एकाधिक इनहेरिटेंस प्राप्त करने के लिए किया जाता है।
डिफ़ॉल्ट और स्थिर तरीकों को एक इंटरफ़ेस में पेश किया जा सकता है। इसके अलावा, हम इंटरफ़ेस में निजी तरीके भी रख सकते हैं। इसका उपयोग अमूर्तता प्राप्त करने के लिए किया जाता है।
क्लास और इंटरफ़ेस के बीच मुख्य अंतर
- एक क्लास में, इसे घोषित करने के लिए क्लास नाम के कीवर्ड का उपयोग किया जाता है। इंटरफ़ेस में, इसे घोषित करने के लिए इंटरफ़ेस नामक कीवर्ड का उपयोग किया जाता है।
- किसी वर्ग के सदस्यों को सार्वजनिक होने की आवश्यकता नहीं है। यह सार्वजनिक, निजी और संरक्षित भी हो सकता है। इसके विपरीत, इंटरफ़ेस के सदस्य डिफ़ॉल्ट रूप से सार्वजनिक होते हैं।
- एक क्लास में एक मेथड बॉडी हो सकती है। इसमें ठोस तरीके शामिल हैं. इंटरफ़ेस में निकायों के साथ कोई विधि नहीं हो सकती। उनमें अमूर्त विधियाँ हैं।
- एक वर्ग को केवल एक ही वर्ग का विस्तार करने की अनुमति है लेकिन उतने ही इंटरफ़ेस की आवश्यकता होती है। एक इंटरफ़ेस स्वयं इंटरफ़ेस लागू नहीं कर सकता है लेकिन उसे किसी भी संख्या में कक्षाओं का विस्तार करने की अनुमति है। यह, बदले में, बहु-वर्ग कार्यान्वयन का एक फायदा है।
- किसी प्रोग्राम में कक्षाओं में कंस्ट्रक्टर हो सकते हैं। वे एक प्रोग्राम में कोडिंग संरचनाओं का एक ब्लॉक हैं, जो विधियों के समान हैं। इंटरफ़ेस में कोई कंस्ट्रक्टर नहीं है।
- https://ieeexplore.ieee.org/abstract/document/6141290/
- https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0009813
अंतिम अद्यतन: 30 जुलाई, 2023
![बिंदु 1](https://askanydifference.com/wp-content/uploads/2024/02/dot-1.png)
संदीप भंडारी ने थापर विश्वविद्यालय (2006) से कंप्यूटर में इंजीनियरिंग में स्नातक की उपाधि प्राप्त की है। उनके पास प्रौद्योगिकी क्षेत्र में 20 वर्षों का अनुभव है। उन्हें डेटाबेस सिस्टम, कंप्यूटर नेटवर्क और प्रोग्रामिंग सहित विभिन्न तकनीकी क्षेत्रों में गहरी रुचि है। आप उनके बारे में और अधिक पढ़ सकते हैं जैव पृष्ठ.
अपने प्रोग्रामिंग कौशल को बढ़ाने के इच्छुक डेवलपर्स के लिए क्लास और इंटरफ़ेस दोनों की विस्तृत व्याख्या मूल्यवान है।
मैं पूरी तरह सहमत हूं, टीली। यह आलेख इन प्रोग्रामिंग बुनियादी सिद्धांतों की स्पष्ट समझ देता है।
बिल्कुल, टीली। यह सभी स्तरों पर डेवलपर्स के लिए क्लास और इंटरफ़ेस के बारे में अपना ज्ञान बढ़ाने के लिए एक बेहतरीन संसाधन है।
विस्तृत तुलना तालिका और गहन स्पष्टीकरण डेवलपर्स के लिए बहुत ज्ञानवर्धक हैं।
यह व्यापक व्याख्या प्रोग्रामिंग में क्लास और इंटरफ़ेस की अवधारणाओं की गहरी समझ प्रदान करती है।
यह क्लास और इंटरफ़ेस की अवधारणाओं की एक बहुत ही ज्ञानवर्धक व्याख्या है। प्रभावी प्रोग्रामिंग के लिए इन अवधारणाओं को गहराई से समझना आवश्यक है।
बिल्कुल, फिलिप। यह विस्तृत विवरण डेवलपर्स के लिए उनके कोडिंग कौशल को और आगे बढ़ाने में बहुत उपयोगी है।
मैं आपसे पूरी तरह सहमत हूं, फिलिप। उच्च गुणवत्ता वाले कोड बनाने के लिए डेवलपर्स के लिए इन अवधारणाओं की ठोस समझ होना महत्वपूर्ण है।
एक क्लास क्या है और यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग से कैसे संबंधित है, इसका विवरण अत्यंत जानकारीपूर्ण है।
यह आलेख क्लास और इंटरफ़ेस की अवधारणाओं में मूल्यवान अंतर्दृष्टि प्रदान करता है, प्रोग्रामिंग में उनकी भूमिकाओं की स्पष्ट समझ प्रदान करता है।
मैं इससे अधिक सहमत नहीं हो सका, नाथन। किसी भी प्रोग्रामर के लिए क्लास और इंटरफ़ेस के बीच अंतर को समझना महत्वपूर्ण है।
बिल्कुल, नाथन। यह एक विस्तृत विवरण है जो इन आवश्यक प्रोग्रामिंग घटकों पर प्रकाश डालता है।
क्लास और इंटरफ़ेस के बीच लेख की तुलना काफी ज्ञानवर्धक है। प्रोग्रामिंग में शामिल किसी भी व्यक्ति के लिए यह बहुमूल्य जानकारी है।
बिल्कुल, नाओमी। प्रोग्रामर के लिए इन अवधारणाओं को समझना आवश्यक है, और यह लेख उन्हें समझाने का उत्कृष्ट काम करता है।
तुलना तालिका में स्पष्टता और विस्तृत स्पष्टीकरण वर्ग और इंटरफ़ेस के बीच की बारीकियों को समझने के लिए एक ठोस आधार प्रदान करते हैं।
क्लास और इंटरफ़ेस के बीच विस्तृत तुलना प्रत्येक की विशेषताओं को अलग करने के लिए बहुत उपयोगी है।
वर्ग और इंटरफ़ेस को कैसे परिभाषित किया जाता है और उनके मुख्य अंतर की व्याख्या बहुत व्यापक है। यह इन मूलभूत अवधारणाओं की गहन समझ प्रदान करता है।
हाँ, स्पष्टीकरण बहुत स्पष्ट और शिक्षाप्रद है। यह उन लोगों के लिए एक उत्कृष्ट संसाधन है जो प्रोग्रामिंग के बारे में अपना ज्ञान बढ़ाना चाहते हैं।
मैं पूरी तरह सहमत हूं, एलन। यह लेख शुरुआती और अनुभवी प्रोग्रामर दोनों के लिए फायदेमंद होगा।
क्लास और इंटरफ़ेस के बीच परिभाषा और मुख्य अंतर का विश्लेषण प्रोग्रामर्स के लिए बहुत जानकारीपूर्ण और उपयोगी है।
मैं पूरी तरह सहमत हूं, चेल्सी। यह आलेख इन मूलभूत प्रोग्रामिंग अवधारणाओं का संपूर्ण और शैक्षिक अवलोकन प्रदान करता है।
बिल्कुल, चेल्सी। जो कोई भी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के सिद्धांतों को समझना चाहता है, उसके लिए यह एक आवश्यक पाठ है।