2012-10-15 39 views
22

मैं बहुरूपता, अधिभार और ओवरराइडिंग की अवधारणाओं के बारे में बहुत उलझन में हूं क्योंकि यह मेरे जैसा ही लगता है। कृपया इन अवधारणाओं को समझाएं, और वे एक-दूसरे से अलग कैसे हैंक्या पॉलिमॉर्फिज्म, ओवरलोडिंग और समान अवधारणाओं को ओवरराइड कर रहे हैं?

बहुत उलझन में है तो कृपया मुझे सही तरीके से मार्गदर्शन करें।

धन्यवाद

उत्तर

52

Polymorphism ओवरराइडिंग के माध्यम से हासिल किया जा सकता है। संक्षेप में शब्दों में डालें, बहुरूपता किसी वस्तु की अपनी प्रकृति के आधार पर अलग-अलग व्यवहार (विभिन्न कार्यान्वयन का उपयोग) प्रदान करने की क्षमता को संदर्भित करती है। विशेष रूप से, वर्ग पदानुक्रम में अपनी स्थिति के आधार पर।

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

Method Overloading पॉलिमॉर्फिज्म से असंबंधित है। यह एक विधि के विभिन्न रूपों को परिभाषित करने के लिए संदर्भित करता है (आमतौर पर विभिन्न पैरामीटर संख्या या प्रकार प्राप्त करके)। इसे स्थैतिक बहुरूपता के रूप में देखा जा सकता है। एक कार्यान्वयन या दूसरे को कॉल करने का निर्णय कोडिंग समय पर लिया जाता है। इस मामले में नोटिस विधि के हस्ताक्षर को बदलना चाहिए।

Operator overloading एक अलग अवधारणा, बहुरूपता से संबंधित है, जो अलग ढंग से अपने ऑपरेंड के प्रकार के आधार पर कैसे कार्य करने के लिए एक निश्चित भाषा पर निर्भर ऑपरेटर की क्षमता को दर्शाता है है (उदाहरण के लिए, +String और के साथ इसके अलावा के साथ संयोजन अर्थ हो सकता है संख्यात्मक संचालन)।

विकिपीडिया में example काफी चित्रकारी है।

निम्न संबंधित सवाल भी उपयोगी हो सकती:

+0

बहुरूपता के लिए असंबंधित अधिक भार है? अधिभार समय संकलन समय polymorphism है। जहां सवारी के रूप में रनटाइम polymorphism है –

4

संक्षेप में, वे समान नहीं हैं।

ओवरलोडिंग का अर्थ समान नाम के साथ विधियों का निर्माण करना है लेकिन विभिन्न पैरामीटर।

ओवरराइडिंग का मतलब है किसी विधि के व्यवहार को बदलने के लिए उप-वर्ग में सुपरक्लास की विधि को फिर से परिभाषित करना।

पॉलिमॉर्फिज्म एक व्यापक अवधारणा है जिसमें ओवरराइडिंग और ओवरलोडिंग और इसके दायरे में बहुत कुछ शामिल है। Wikipedia's description of polymorphism पॉलिमॉर्फिज्म को बेहतर ढंग से समझने में आपकी मदद कर सकता है। विशेष रूप से सबटाइप पॉलिमॉर्फिज्म (या समावेश पॉलिमॉर्फिज्म) अनुभाग वह जगह है जहां आपको देखना चाहिए।