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

Anonim

इम्प्मेंट्स बनाम एक्स्टेंड्स

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

विस्तारित करता है

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

-2 ->

अव्यवस्थाएं

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

इम्प्लीमेंट्स और एक्सपोर्ट्स के बीच का अंतर

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