विरासत: वंशानुक्रम ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) में एक मौलिक अवधारणा है जो कक्षाओं को अन्य वर्गों से गुण और व्यवहार प्राप्त करने की अनुमति देता है। यह मौजूदा कक्षाओं के आधार पर नई कक्षाएं बनाने, कोड के पुन: उपयोग को बढ़ावा देने और कक्षाओं के बीच पदानुक्रमित संबंध स्थापित करने के लिए एक तंत्र है।
विरासत "माता-पिता-बच्चे" या "सुपरक्लास-उपवर्ग" रिश्ते की अवधारणा पर आधारित है। जिस वर्ग से कोई अन्य वर्ग विरासत में मिलता है उसे सुपरक्लास या बेस क्लास कहा जाता है, जबकि जो वर्ग सुपरक्लास से विरासत में मिलता है उसे उपवर्ग या व्युत्पन्न वर्ग कहा जाता है। उपवर्ग को अपने सुपरक्लास के सभी गुण (चर) और विधियाँ (फ़ंक्शन) विरासत में मिलती हैं और वह अपने स्वयं के अनूठे गुणों और विधियों को भी जोड़ सकता है या विरासत में मिली विधियों को ओवरराइड कर सकता है।
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) में, इनहेरिटेंस एक मौलिक अवधारणा है जो कक्षाओं को अन्य वर्गों से गुण और व्यवहार प्राप्त करने की अनुमति देती है। यह कोड के पुन: उपयोग, मॉड्यूलरिटी और कक्षाओं के बीच पदानुक्रमित संबंधों के निर्माण को बढ़ावा देता है। वर्गों की उत्पत्ति के तरीके और उनके द्वारा बनाए गए रिश्तों के आधार पर विरासत को विभिन्न प्रकारों में वर्गीकृत किया जाता है। विरासत के आम तौर पर मान्यता प्राप्त प्रकारों में शामिल हैं:
एकल वंशानुक्रम: एकल वंशानुक्रम उस परिदृश्य को संदर्भित करता है जहां एक वर्ग केवल एक आधार या मूल वर्ग से प्राप्त होता है। इस प्रकार की विरासत में, एक व्युत्पन्न वर्ग एकल आधार वर्ग की कार्यक्षमता का विस्तार करता है।
मल्टीपल इनहेरिटेंस (PHP में समर्थित नहीं): मल्टीपल इनहेरिटेंस एक क्लास को एक से अधिक बेस क्लास से इनहेरिट करने की अनुमति देता है। व्युत्पन्न वर्ग में कई मूल वर्गों के गुण और व्यवहार शामिल होते हैं। हालाँकि, एकाधिक वंशानुक्रम जटिलताओं और संघर्षों को प्रस्तुत कर सकता है, इसलिए सभी प्रोग्रामिंग भाषाएँ सीधे तौर पर इसका समर्थन नहीं करती हैं।
मल्टीलेवल इनहेरिटेंस: मल्टीलेवल इनहेरिटेंस में व्युत्पन्न वर्गों की एक श्रृंखला का निर्माण शामिल होता है जहां प्रत्येक व्युत्पन्न वर्ग पिछले स्तर के बेस क्लास से विरासत में मिलता है। यह वंशानुक्रम की एक पदानुक्रमित श्रृंखला बनाता है। प्रत्येक व्युत्पन्न वर्ग अपने मूल वर्ग की विशेषताओं को प्राप्त करते हुए अपनी विशिष्ट कार्यक्षमता जोड़ सकता है।
पदानुक्रमित वंशानुक्रम: पदानुक्रमित वंशानुक्रम तब होता है जब कई व्युत्पन्न वर्ग एक ही आधार वर्ग से प्राप्त होते हैं। प्रत्येक व्युत्पन्न वर्ग आगे की व्युत्पन्न कक्षाओं के लिए आधार वर्ग बन जाता है। यह एक पदानुक्रमित वृक्ष जैसी संरचना के निर्माण की अनुमति देता है।
हाइब्रिड (मल्टीपाथ) इनहेरिटेंस (PHP में समर्थित नहीं): हाइब्रिड या मल्टीपाथ इनहेरिटेंस मल्टीपल इनहेरिटेंस और मल्टीलेवल इनहेरिटेंस का एक संयोजन है। इसमें कई वर्गों से विरासत प्राप्त करना और एक साथ बहुस्तरीय विरासत संरचना बनाना शामिल है।
इंटरफ़ेस इनहेरिटेंस: इंटरफ़ेस इनहेरिटेंस तब होता है जब एक वर्ग एक या अधिक इंटरफ़ेस लागू करता है। इंटरफ़ेस उन तरीकों के अनुबंध को परिभाषित करता है जिनका कार्यान्वयन कक्षाओं को पालन करना होगा। एक वर्ग कई इंटरफेस लागू कर सकता है, जिससे वह कई स्रोतों से व्यवहार को प्राप्त करने और परिभाषित करने में सक्षम हो सकता है।
यह ध्यान रखना महत्वपूर्ण है कि प्रोग्रामिंग भाषा के आधार पर कुछ प्रकार की विरासत की उपलब्धता भिन्न हो सकती है। उदाहरण के लिए, PHP मूल रूप से एकल वंशानुक्रम का समर्थन करता है और कोड के पुन: उपयोग के लिए एक वैकल्पिक तंत्र के रूप में लक्षण प्रदान करता है जो एकाधिक वंशानुक्रम से मिलता जुलता है।
PHP: PHP का मतलब हाइपरटेक्स्ट प्रीप्रोसेसर है, और यह एक लोकप्रिय सर्वर-साइड स्क्रिप्टिंग भाषा है जिसका उपयोग वेब विकास के लिए किया जाता है। PHP को विशेष रूप से गतिशील वेब पेज और वेब एप्लिकेशन बनाने के लिए डिज़ाइन किया गया है। इसे 1994 में रासमस लेरडॉर्फ द्वारा बनाया गया था और तब से यह गतिशील वेबसाइटों के निर्माण के लिए व्यापक रूप से उपयोग की जाने वाली भाषा के रूप में विकसित हुई है।
PHP अपनी सादगी और लचीलेपन के लिए जाना जाता है, जो इसे शुरुआती लोगों के लिए एक सुलभ भाषा बनाता है जबकि अनुभवी डेवलपर्स के लिए उन्नत सुविधाएँ भी प्रदान करता है। यह HTML कोड के भीतर एम्बेडेड है और इसे HTML, CSS, JavaScript और अन्य वेब तकनीकों के साथ मिलाया जा सकता है।
मल्टीपल इनहेरिटेंस ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं में एक सुविधा को संदर्भित करता है जो एक क्लास को एक से अधिक बेस क्लास से इनहेरिट करने की अनुमति देता है। हालाँकि, सितंबर 2021 में मेरे ज्ञान कटऑफ के अनुसार, PHP सीधे एकाधिक वंशानुक्रम का समर्थन नहीं करता है।
PHP एकल इनहेरिटेंस का उपयोग करता है, जहां एक क्लास केवल एक बेस क्लास से इनहेरिट कर सकता है। यह डिज़ाइन विकल्प कुछ जटिलताओं और संघर्षों से बचने के लिए बनाया गया था जो एकाधिक विरासत के साथ उत्पन्न हो सकते हैं। हालाँकि, PHP मल्टीपल इनहेरिटेंस के समान तरीके से कोड का पुन: उपयोग प्राप्त करने के लिए "विशेषताएं" नामक एक वैकल्पिक तंत्र प्रदान करता है।
PHP में विशेषताएँ आपको उन तरीकों को परिभाषित करने की अनुमति देती हैं जिनका कई वर्गों में पुन: उपयोग किया जा सकता है। आप लक्षणों को विधियों के एक सेट के रूप में सोच सकते हैं जिन्हें कक्षाओं में मिश्रित किया जा सकता है, जो विभिन्न वर्ग पदानुक्रमों में कोड साझा करने का एक तरीका प्रदान करता है। लक्षण आपको एकाधिक वंशानुक्रम के संभावित मुद्दों से बचते हुए कोड का पुन: उपयोग और संरचना प्राप्त करने में सक्षम बनाते हैं।
trait Trait1 { public function method1() { echo "Trait1 method1"; } } trait Trait2 { public function method2() { echo "Trait2 method2"; } } class MyClass { use Trait1, Trait2; } $obj = new MyClass(); $obj->method1(); // Output: Trait1 method1 $obj->method2(); // Output: Trait2 method2
उपरोक्त उदाहरण में, MyClass वर्ग उपयोग कीवर्ड का उपयोग करके ट्रैट1 और ट्रैट2 दोनों का उपयोग करता है। परिणामस्वरूप, MyClass के उदाहरण दोनों लक्षणों में परिभाषित विधियों तक पहुंच सकते हैं।
विशेषताओं का उपयोग करके, आप PHP में कई वर्गों में कोड को प्रभावी ढंग से साझा और पुन: उपयोग कर सकते हैं, इसकी संभावित जटिलताओं से बचते हुए एकाधिक वंशानुक्रम के समान कोड पुन: उपयोग का एक रूप प्रदान कर सकते हैं।
यह संरचना दृष्टिकोण आपको एकाधिक स्रोतों से कोड का पुन: उपयोग करने की अनुमति देता है, जिससे एकाधिक विरासत के समान प्रभाव प्राप्त होता है। हालाँकि, इसके लिए विधि कॉल के मैन्युअल प्रतिनिधिमंडल की आवश्यकता होती है और यह लक्षणों के समान स्तर का कोड साझाकरण और लचीलापन प्रदान नहीं करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3