मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर

विषयसूची:

मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर
मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर

वीडियो: मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर

वीडियो: मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर
वीडियो: सी# - वंशानुक्रम | सरल, बहुस्तरीय, एकाधिक और पदानुक्रमित वंशानुक्रम 2024, जुलाई
Anonim

मुख्य अंतर - एकाधिक बनाम बहुस्तरीय वंशानुक्रम

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

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

एकाधिक वंशानुक्रम तब होता है जब एक वर्ग को एक से अधिक आधार वर्ग विरासत में मिलते हैं।

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

चित्र 01: एकाधिक वंशानुक्रम

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

उदाहरण के लिए, मान लें कि कक्षा ए और बी दोनों में एक ही नाम के साथ एक विधि है जो योग () है और वर्ग सी दोनों वर्गों को प्राप्त कर रहा है। टाइप सी का ऑब्जेक्ट बनाने और योग () विधि को कॉल करने के बाद, यह एक त्रुटि पैदा कर सकता है क्योंकि दोनों वर्गों में एक ही विधि है। कंपाइलर नहीं जानता कि किस फ़ंक्शन को कॉल करना है। इसलिए, एकाधिक वंशानुक्रम एक प्रणाली की जटिलता को बढ़ाता है। एकाधिक वंशानुक्रम C++ भाषा में समर्थित है लेकिन जावा, C जैसी भाषाएँ एकाधिक वंशानुक्रम का समर्थन नहीं करती हैं।इसके बजाय, ये भाषाएं इंटरफ़ेस का उपयोग करती हैं जो एक वर्ग के समान है लेकिन इसे तत्काल नहीं किया जा सकता है।

बहुस्तरीय विरासत क्या है?

बहुस्तरीय वंशानुक्रम तब होता है जब एक वर्ग एक व्युत्पन्न वर्ग से विरासत में मिलता है जो उस व्युत्पन्न वर्ग को एक नए वर्ग के लिए आधार वर्ग बनाता है।

एकाधिक और बहुस्तरीय वंशानुक्रम के बीच महत्वपूर्ण अंतर
एकाधिक और बहुस्तरीय वंशानुक्रम के बीच महत्वपूर्ण अंतर

चित्र 02: बहुस्तरीय वंशानुक्रम

बहुस्तरीय विरासत के तीन स्तर होते हैं। इंटरमीडिएट क्लास जो बी को क्लास ए से और क्लास सी को क्लास बी से विरासत में मिला है। ए बी के लिए बेस क्लास है और बी सी के लिए बेस क्लास है।

मल्टीलेवल इनहेरिटेंस को लागू करने वाला एक प्रोग्राम इस प्रकार है। प्रोग्राम जावा का उपयोग करके लिखा गया है।

एकाधिक और बहुस्तरीय वंशानुक्रम के बीच अंतर_चित्र 03
एकाधिक और बहुस्तरीय वंशानुक्रम के बीच अंतर_चित्र 03

चित्र 03: प्रोग्राम जो बहुस्तरीय वंशानुक्रम लागू करता है

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

मल्टीपल और मल्टीलेवल इनहेरिटेंस में क्या समानता है?

दोनों प्रकार के वंशानुक्रम हैं।

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

मल्टीपल इनहेरिटेंस बनाम मल्टीलेवल इनहेरिटेंस

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

सारांश - एकाधिक बनाम बहुस्तरीय वंशानुक्रम

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

पीडीएफ मल्टीपल बनाम मल्टीलेवल इनहेरिटेंस डाउनलोड करें

आप इस लेख का पीडीएफ संस्करण डाउनलोड कर सकते हैं और उद्धरण नोट के अनुसार इसे ऑफ़लाइन उद्देश्यों के लिए उपयोग कर सकते हैं। कृपया पीडीएफ संस्करण यहां डाउनलोड करें मल्टीपल और मल्टीलेवल इनहेरिटेंस के बीच अंतर

सिफारिश की: