सी . में ओवरराइडिंग और ओवरलोडिंग के बीच अंतर

विषयसूची:

सी . में ओवरराइडिंग और ओवरलोडिंग के बीच अंतर
सी . में ओवरराइडिंग और ओवरलोडिंग के बीच अंतर

वीडियो: सी . में ओवरराइडिंग और ओवरलोडिंग के बीच अंतर

वीडियो: सी . में ओवरराइडिंग और ओवरलोडिंग के बीच अंतर
वीडियो: Difference Between Function Overloading and Overriding in C++ | Learn Coding 2024, नवंबर
Anonim

मुख्य अंतर – C में ओवरराइडिंग बनाम ओवरलोडिंग

सीमें ओवरराइडिंग और ओवरलोडिंग के बीच मुख्य अंतर यह है कि ओवरराइड मेथड कॉल को इसकी परिभाषा के लिए बाध्य करना रनटाइम पर होता है जबकि ओवरलोडेड मेथड कॉल को इसकी परिभाषा के लिए कंपाइल समय पर होता है।

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

सीमें ओवरराइडिंग क्या है?

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

सीमें ओवरराइडिंग और ओवरलोडिंग के बीच अंतर
सीमें ओवरराइडिंग और ओवरलोडिंग के बीच अंतर

चित्र 01: C प्रोग्राम ओवरराइडिंग के साथ

उपरोक्त कार्यक्रम के अनुसार, वर्ग आकार आधार वर्ग है, और इसमें प्रदर्शन विधि शामिल है। वर्ग आयत और त्रिभुज व्युत्पन्न वर्ग हैं। इन व्युत्पन्न वर्गों में भी अपने स्वयं के कार्यान्वयन के साथ एक ही विधि प्रदर्शन होता है।

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

रन करने का तरीका रनटाइम पर तय किया जाता है। शेप क्लास को 'वर्चुअल' कीवर्ड से लिखा जाता है। आयत और त्रिभुज वर्ग 'ओवरराइड' कीवर्ड के साथ लिखे गए हैं। यदि इन कीवर्ड्स का उपयोग नहीं किया जाता है, तो आउटपुट शेप क्लास की डिस्प्ले मेथड की सामग्री को सभी के लिए प्रिंट कर देगा।

C में ओवरलोडिंग क्या है?

ओवरलोडिंग में, कई विधियों का एक ही नाम होता है लेकिन विभिन्न मापदंडों के साथ। पैरामीटर विभिन्न प्रकार के हो सकते हैं। विधियों में पैरामीटर की एक अलग संख्या भी हो सकती है।मेथड ओवरलोडिंग एक ही क्लास में होती है। परिभाषा के लिए अतिभारित विधियों का बंधन संकलन समय पर होता है। नीचे दिए गए C प्रोग्राम को देखें।

सीमें ओवरराइडिंग और ओवरलोडिंग के बीच महत्वपूर्ण अंतर
सीमें ओवरराइडिंग और ओवरलोडिंग के बीच महत्वपूर्ण अंतर

चित्र 02: सीकार्यक्रम ओवरलोडिंग के साथ

उपरोक्त कार्यक्रम के अनुसार, कक्षा ए में एक ही नाम की दो विधियाँ हैं जिन्हें योग कहा जाता है। उनके पास विभिन्न प्रकार के पैरामीटर हैं। मुख्य कार्यक्रम में, ए का एक ऑब्जेक्ट बनाया जाता है। योग (2, 3) पूर्णांकों के साथ योग विधि को लागू करेगा। योग (5.1, 7.94) दोहरे मूल्यों के साथ योग विधि को लागू करेगा। दोनों विधियों में समान नाम और समान संख्या में पैरामीटर हैं। लेकिन पैरामीटर प्रकार अलग हैं। आवश्यक विधि तदनुसार कहा जाता है। यदि विधि के नाम और पैरामीटर प्रकार समान हैं, लेकिन मापदंडों की संख्या भिन्न है, तो भी ओवरलोडिंग हो सकती है।

C में ओवरराइडिंग और ओवरलोडिंग में क्या समानता है?

सीमें ओवरराइडिंग और ओवरलोडिंग दोनों बहुरूपता के प्रकार हैं।

C में ओवरराइडिंग और ओवरलोडिंग में क्या अंतर है?

सी में ओवरराइडिंग बनाम ओवरलोडिंग

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

सारांश - सी में ओवरराइडिंग बनाम ओवरलोडिंग

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

सिफारिश की: