वंशानुक्रम और संरचना के बीच का अंतर

Anonim

विरासत बनाम संरचना

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

वंशानुक्रम क्या है?

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

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

संरचना क्या है?

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

वंशानुक्रम और संरचना के बीच अंतर क्या है?

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