Inheritance in Hindi: इनहेरिटेंस ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) भाषाओं की मूल अवधारणाओं में से एक है। यह एक ऐसा तंत्र है जहां आप class के hierarchy के लिए किसी अन्य वर्ग से एक class प्राप्त कर सकते हैं जो attributes और methods का एक सेट साझा करते हैं।
यदि आप OOPs Concepts को समझना चाहते हैं तो इनहेरिटेंस क्या है (What is Inheritance in Hindi) समझना बहुत महत्वपूर्ण है। इनहेरिटेंस को अच्छे से समझने के लिए सबसे पहले प्रोग्रामिंग लैंग्वेज क्या है और इसके प्रकार और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज को समझ लें।
Table of Contents
इनहेरिटेंस क्या है (What is Inheritance in Hindi)
कंप्यूटर प्रोग्रामिंग में, इनहेरिटेंस मौजूदा क्लास या बेस क्लास से नई क्लास बनाने की प्रक्रिया है, जिसे व्युत्पन्न (derived) क्लास कहा जाता है। इनहेरिटेंस का उपयोग करके एक उपयोगकर्ता एक बार लिखे गए अपने कोड का पुन: उपयोग कर सकता है और कोड की जगह और मेमोरी को बचा सकता है। Inheritance ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की महत्वपूर्ण अवधारणाओं में से एक है।

सरल शब्दों में, Inheritance एक गणित प्रदान करता है जो एक वर्ग (class) को दूसरे class के गुणों को प्राप्त करने की अनुमति देता है। इनहेरिटेंस को समझने की कुंजी (key) यह है कि यह कोड पुन: प्रयोज्यता प्रदान करता है। एक ही कोड को बार-बार लिखने के स्थान पर, हम केवल एक class के गुणों को दूसरे class में प्राप्त कर सकते हैं।
यहाँ एक उदाहरण दिया गया है – कार, बस, बाइक – ये सभी एक व्यापक श्रेणी के अंतर्गत आते हैं जिसे वाहन (Vehicle) कहा जाता है। इसका मतलब है कि उन्हें class के vehicles के properties inheritance में मिले हैं यानी सभी का उपयोग परिवहन के लिए किया जाता है।
इनहेरिटेंस का उदाहरण (Example of Inheritance in Hindi)
जावा भाषा में इनहेरिटेंस के उपयोग को दिखाने का कार्यक्रम नीचे दिया गया है:
- चलिए बेस क्लास से child क्लास में कुछ फील्ड और मेथड इनहेरिट करते हैं।
बेस क्लास में 2 फ़ील्ड और 1 विधि है:
class Base { int x=50; int y = 60; //Addition method return integer value of x+y public int addition(){ return x+y; //return 110 } }
Child क्लास इनहेरिट एडिशन मेथड और x फील्ड बेस क्लास से:
public class Child extends Base { int z; public void subtraction(){ //addition method and x filed is inherited from Base Class z = addition() - x; System.out.println(z); } }
मुख्य class में, हम child ऑब्जेक्ट बनाते हैं और उस पर घटाव विधि कहते हैं।
public class InheritanceAbhiandroid { public static void main(String[] args) { Child child = new Child(); //Child object child.subtraction();//Subtraction method called on child object } }
आउटपुट:
60
इनहेरिटेंस के प्रकार (Types of Inheritance in Hindi)
OOPs प्रोग्रामिंग में मुख्य रूप से छह प्रकार के इनहेरिटेंस समर्थित हैं:
- एकल इनहेरिटेंस (Single inheritance)।
- बहु स्तरीय इनहेरिटेंस (Multi-level inheritance)।
- एकाधिक इनहेरिटेंस (Multiple inheritance)।
- बहुपथ इनहेरिटेंस (Multipath inheritance)।
- पदानुक्रमित इनहेरिटेंस (Hierarchical inheritance)।
- हाइब्रिड इनहेरिटेंस (Hybrid inheritance)।
आइए इन सभी प्रकार के इनहेरिटेंस को समझते है –
1. Single इनहेरिटेंस
वह इनहेरिटेंस जिसमें एक एकल derived class एक एकल आधार class से विरासत में मिला है, Single इनहेरिटेंस के रूप में जाना जाता है।
मूल रूप से, सिंगल इनहेरिटेंस एक डिराइव्ड क्लास को सिंगल पैरेंट क्लास से गुण और व्यवहार इनहेरिट करने में सक्षम बनाता है। यह एक व्युत्पन्न class को आधार वर्ग के गुणों और व्यवहार को प्राप्त करने की अनुमति देता है, इस प्रकार कोड पुन: प्रयोज्यता को सक्षम करने के साथ-साथ मौजूदा कोड में नई सुविधाएँ जोड़ता है।
दिए गए उदाहरण में, Class A पैरेंट क्लास है और क्लास B चाइल्ड क्लास है क्योंकि क्लास B को पैरेंट क्लास A की विशेषताएं और व्यवहार विरासत में मिला है।
2. Multi-level इनहेरिटेंस
बहु-स्तरीय इनहेरिटेंस में कम से कम दो या दो से अधिक class की भागीदारी शामिल होता है। मूल रूप से, इस इनहेरिटेंस में, एक व्युत्पन्न वर्ग दूसरे व्युत्पन्न वर्ग से बनाया जाता है।
मूल रूप से, Inheritance की श्रृंखला को Multi-level इनहेरिटेंस कहा जाता है। यह एक ऐसी विधि है जहाँ एक class मूल class से विरासत में मिलता है और नव निर्मित sub-class दूसरे नए वर्ग के लिए आधार class बन जाता है।
दिए गए उदाहरण में, Class C को वर्ग B के गुण और व्यवहार विरासत में मिलते हैं और वर्ग B को वर्ग B के गुण और व्यवहार विरासत में मिलते हैं। इसलिए, यहाँ A, B का मूल वर्ग है और वर्ग B, C का मूल वर्ग है।
3. Multiple इनहेरिटेंस
Multiple इनहेरिटेंस में, एक से अधिक आधार वर्ग से एक व्युत्पन्न वर्ग बनाया जाता है। यह इनहेरिटेंस जावा, .NET भाषाओं जैसे C#, F#, आदि द्वारा समर्थित नहीं है।
मूल रूप से, एकाधिक (multiple) इनहेरिटेंस कुछ object-oriented प्रोग्रामिंग भाषाओं की एक विशेषता है जिसमें एक object या class एक से अधिक मूल वस्तु (object) या मूल वर्ग से सुविधाओं को प्राप्त कर सकता है।
दिए गए उदाहरण में, वर्ग C को समान स्तर पर वर्ग B और वर्ग A के गुण और व्यवहार विरासत में मिलते हैं। तो, यहाँ A और Class B दोनों ही Class C के लिए parent classes हैं।
4. Multipath इनहेरिटेंस
मल्टीपाथ इनहेरिटेंस में, एक derived class अन्य व्युत्पन्न classes और अन्य व्युत्पन्न classes के समान आधार class से बनाया जाता है। यह वंशानुक्रम .NET भाषाओं जैसे C#, F#, आदि द्वारा समर्थित नहीं है।
दिए गए उदाहरण में, Class D को क्लास C और क्लास B के साथ-साथ क्लास A के गुण और व्यवहार विरासत में मिलते हैं। क्लास C और क्लास B दोनों ही क्लास A को विरासत में लेते हैं। इसलिए Class A क्लास B और क्लास C के साथ-साथ Class D लिए भी जनक है।
5. Hierarchical इनहेरिटेंस
Hierarchical इनहेरिटेंस एक ऐसी स्थिति का वर्णन करता है जिसमें एक मूल वर्ग (class) को कई उपवर्गों द्वारा विरासत में मिला है।
इस प्रकार के इनहेरिटेंस में, एक एकल आधार class से एक से अधिक derived class बनाए जाते हैं और आगे के child class एक से अधिक child classes के लिए parent classes के रूप में कार्य करते हैं।
दिए गए उदाहरण में, Class A में कक्षा B और कक्षा D के दो children हैं। इसके अलावा, कक्षा B और कक्षा C दोनों के दो children हैं – कक्षा D और E; क्रमशः F और G वर्ग।
6. Hybrid इनहेरिटेंस
हाइब्रिड इनहेरिटेंस मल्टीपल इनहेरिटेंस और मल्टीलेवल इनहेरिटेंस का संयोजन है। एकाधिक वंशानुक्रम के रूप में एक वर्ग दो classes से प्राप्त होता है।
मूल रूप से, यह एक से अधिक इनहेरिटेंस का संयोजन है। इसलिए, यह बहुस्तरीय और एकाधिक इनहेरिटेंस या Hierarchical और बहुस्तरीय इनहेरिटेंस Hierarchical और बहुपथ वंशानुक्रम, या Hierarchical, बहुस्तरीय और एकाधिक इनहेरिटेंस का संयोजन हो सकता है।
इनहेरिटेंस के लाभ – Advantages of Inheritance
Inheritance के कुछ सबसे महत्वपूर्ण लाभ (फायदे) यहां दिए गए हैं:
- इनहेरिटेंस कोड अतिरेक को कम करता है।
- यह बेहतर कोड पुन: प्रयोज्यता प्रदान करता है।
- स्रोत कोड का आकार कम करता है और कोड पठनीयता में सुधार करता है।
- इनहेरिटेंस कम विकास और रखरखाव लागत की ओर ले जाती है।
- इनहेरिटेंस एक स्पष्ट मॉडल संरचना प्रदान करता है जिसे समझना आसान है।
- कोड को प्रबंधित करना आसान है और parent-child और बच्चे की कक्षाओं में विभाजित किया गया है।
- इनहेरिटेंस समय और प्रयास को बचा सकता है क्योंकि मुख्य कोड को फिर से लिखने की आवश्यकता नहीं होती है।
- चाइल्ड क्लास के भीतर बेस क्लास की कार्यक्षमता को ओवरराइड करके कोड एक्स्टेंसिबिलिटी का समर्थन करता है।
निष्कर्ष
Inheritance वह प्रक्रिया है जिसमें एक class दूसरे class की विशेषताओं और विधियों को प्राप्त करता है। जिस वर्ग (class) के गुण और विधियाँ इनहेरिट में मिली हैं उसे जनक वर्ग के रूप में जाना जाता है। और जो वर्ग parent class से गुण प्राप्त करता है वह child वर्ग है।
मुझे उम्मीद है कि यह लेख “Inheritance in Hindi”, आपको यह समझने में मदद करेगा कि वास्तव में इनहेरिटेंस क्या है इसके उदाहरण, इनहेरिटेंस के प्रकार और इनहेरिटेंस के लाभ आदि।