अनुशंसित, 2024

संपादक की पसंद

जावा में कीवर्ड का विस्तार और कार्यान्वयन के बीच अंतर

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

तुलना चार्ट

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

कीवर्ड की परिभाषा

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

 कक्षा ए {स्ट्रिंग एस; ए (स्ट्रिंग s1) {s = s1; } // प्रदर्शन स्ट्रिंग शून्य प्रदर्शन () {System.out.println (+ s); }} क्लास B का विस्तार A {String i; बी (स्ट्रिंग s1, स्ट्रिंग i1) {सुपर (s1); i = i1; } शून्य फैलाव () {super.dispaly (); / * वर्ग ए का प्रदर्शन () एक आह्वान। * / System.out.println (+ i); }} वर्ग ओवरराइड {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {B ob = new B (Tech, अंतर); ob.display (); / * कक्षा बी का प्रदर्शन * /}} / * बाहर रखा * / तकनीकी अंतर 

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

औजार कीवर्ड की परिभाषा

कीवर्ड इम्प्लीमेंट्स का उपयोग करते हुए, एक क्लास एक इंटरफेस में सभी तरीकों को इनहेरिट करती है। जब कोई क्लास एक इंटरफ़ेस लागू करता है, तो उस वर्ग को कार्यान्वित इंटरफ़ेस के सभी तरीकों को लागू करना पड़ता है। एक इंटरफ़ेस दूसरे इंटरफ़ेस को कभी लागू नहीं कर सकता है, जैसा कि कीवर्ड विधियों के कार्यान्वयन का वादा करता है लेकिन एक इंटरफ़ेस इसमें कभी भी तरीकों को लागू नहीं करता है, इसलिए एक इंटरफ़ेस के लिए दूसरे इंटरफ़ेस को लागू करना असंभव है। आइए एक उदाहरण की मदद से कीवर्ड कीवर्ड को समझते हैं।

 इंटरफ़ेस स्ट्रिंग्स {शून्य प्रदर्शन (स्ट्रिंग s); } इंटरफ़ेस पूर्णांक {शून्य शो (int i); } क्लास डेमो स्ट्रिंग को लागू करता है, पूर्णांक {शून्य शो (int i) {System.Out.Println ("पूर्णांक मान:" + i); } शून्य प्रदर्शन (स्ट्रिंग s) {System.Out.Println ("स्ट्रिंग मान:" + s); }} वर्ग Demo_main {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {डेमो d = नया डेमो (); d.display ( "TechDifferences"); d.show (2); }} / * आउटपुट * / TechDifferences 2 

जैसा कि ऊपर दिए गए कोड में आप देख सकते हैं कि क्लास डेमो दो इंटरफेस स्ट्रिंग्स और पूर्णांक को लागू करता है और दोनों इंटरफेस में घोषित तरीकों को लागू किया है जो डिस्प्ले () और शो () हैं।

विस्तार और लागू होने के बीच मुख्य अंतर

  1. एक वर्ग दूसरे वर्ग को इनहेरिट कर सकता है, या एक इंटरफ़ेस का उपयोग करके अन्य इंटरफेस विरासत में मिलता है, जबकि एक क्लास एक कीवर्ड इम्प्लीमेंट्स का उपयोग करके एक इंटरफेस को लागू कर सकता है।
  2. एक उपवर्ग जो एक सुपरक्लास का विस्तार करता है या एक सुपरक्लास के सभी तरीकों को ओवरराइड नहीं कर सकता है। दूसरी ओर, एक इंटरफ़ेस को लागू करने वाले वर्ग को उस इंटरफ़ेस के सभी तरीकों को परिभाषित / लागू करना होगा।
  3. एक वर्ग एक ही समय में किसी भी इंटरफ़ेस को लागू कर सकता है। दूसरी ओर, एक वर्ग केवल एक सुपर क्लास का विस्तार कर सकता है।
  4. एक इंटरफ़ेस किसी भी संख्या में इंटरफेस का विस्तार कर सकता है, लेकिन एक इंटरफ़ेस कभी भी किसी अन्य इंटरफ़ेस को लागू नहीं कर सकता है क्योंकि कार्यान्वयन का अर्थ है तरीकों को परिभाषित करना और इंटरफ़ेस में हमेशा अमूर्त तरीके होते हैं ताकि एक इंटरफ़ेस दूसरे इंटरफ़ेस को कभी लागू न कर सके।

निष्कर्ष:

मैं यह कहते हुए चर्चा को समाप्त करता हूं कि एक इंटरफ़ेस को लागू करने से एक क्लास को बढ़ाने की तुलना में कोड अधिक लचीला हो जाता है। चूंकि यह जावा में केवल एक ही सुपर क्लास को विरासत में देने से बचता है। इम्प्लीमेंट्स कीवर्ड का उपयोग करके एक वर्ग एक से अधिक इंटरफेस की विशेषताएं प्राप्त कर सकता है।

Top