जब हम किसी बड़ी एप्लिकेशन या सॉफ्टवेयर को डेवलप करते हैं, तो उसमें बहुत से विभिन्न क्लासेस बनाने पड़ते हैं। लेकिन क्या आपने कभी सोचा है कि क्लासेस को एक दूसरे से कैसे जोड़ा जा सकता है? जी हाँ, आपने सही सोचा है! Inheritance in Java In Hindi वह टूल है, जो आपको एक नए क्लास में किसी एक्सिस्टिंग क्लास के सभी फीचर्स को उसे डुप्लिकेट किए बिना ले जाने की सुविधा देता है। यह एक अत्यंत महत्वपूर्ण फीचर है, जो कोड की लम्बाई को कम करता है और सही से संगठित किया जा सकता है।
इस लेख में हम Inheritance in Java In Hindi के विभिन्न प्रकारों पर बात करेंगे और इसके फायदे के बारे में जानेंगे।
जावा में इंहेरिटेंस क्या है? | Inheritance in Java In Hindi
जावा में Inheritance एक महत्वपूर्ण और उपयोगी विषय है। इसमें एक class के features को दूसरे class में उपयोग करने की सुविधा होती है। निम्नलिखित बिंदुओं में Inheritance के बारे में एक संक्षिप्त विवरण है:
- Inheritance एक कंपनियन या पिता और बच्चे के रिश्ते की तरह होता है।
- इससे एक class को दूसरे class के विशेषताओं का उपयोग करने की सुविधा होती है।
- Inheritance के लिए “extends” की कीवर्ड का उपयोग किया जाता है।
- Inheritance वाक्यांश कोड को दोहराता नहीं है, बल्कि उसे दूसरी class से inherit करता है।
- Inheritance के बिना, यदि हमें एक नई class के लिए कोड लिखना होता है, तो हमें सभी features को दोबारा लिखने की आवश्यकता होती है।
यह सूची केवल Inheritance के कुछ महत्वपूर्ण बिंदुओं का है। Inheritance के और भी कई अन्य उपयोग हैं, जिन्हें जावा में संभव बनाने के लिए इसका उपयोग किया जाता है।
Inheritance क्यों जरूरी होता है?
Inheritance का उपयोग एक ही रूप से फिर से कोडिंग को रिपीट नहीं करने के लिए किया जाता है। यदि एक क्लास में एक फंक्शन (function) होता है जो की दूसरे क्लास में भी होना चाहिए, तो इससे बचने के लिए Inheritance का उपयोग किया जाता है। इसके अलावा, Inheritance से नए features और behavior को add करना भी आसान हो जाता है।
इंहेरिटेंस का उपयोग करने का तरीका
इंहेरिटेंस का उपयोग करने के लिए, एक क्लास को दूसरे क्लास से inherit करने के लिए कुछ स्टेप्स फॉलो करने होते हैं:
- क्लास को inherit करने के लिए, इसे extend करना होता है।
javaCopy codeclass ChildClass extends ParentClass {
// ChildClass Code
}
- अब ChildClass में ParentClass के सभी methods और variables को access करना संभव होगा।
javaCopy codeclass ParentClass {
public void print() {
System.out.println("This is Parent Class");
}
}
class ChildClass extends ParentClass {
public void display() {
System.out.println("This is Child Class");
}
}
public class Main {
public static void main(String[] args) {
ChildClass obj = new ChildClass();
obj.print(); // Output: This is Parent Class
obj.display(); // Output: This is Child Class
}
}
Simple Inheritance In Java In Hindi
इंहेरिटेंस (Inheritance) एक बहुत महत्वपूर्ण जावा कॉन्सेप्ट है जो एक क्लास को एक दूसरे क्लास से inherit करने की अनुमति देता है। यह बहुत ही महत्वपूर्ण है क्योंकि इससे आपको रीअसम्बलिंग करने की आवश्यकता से बचाया जाता है। जब आप एक क्लास को इन्हेरिट (Inherit) करते हैं, तो आप उस क्लास में डिफाइंड करे गए सभी मेथड और वेरिएबल क्लास के बच्चों को भी उपलब्ध हो जाते हैं।
इंहेरिटेंस (Inheritance) एक बहुत महत्वपूर्ण जावा कॉन्सेप्ट है जो एक क्लास को एक दूसरे क्लास से inherit करने की अनुमति देता है। यह बहुत ही महत्वपूर्ण है क्योंकि इससे आपको रीअसम्बलिंग करने की आवश्यकता से बचाया जाता है। जब आप एक क्लास को इन्हेरिट (Inherit) करते हैं, तो आप उस क्लास में डिफाइंड करे गए सभी मेथड और वेरिएबल क्लास के बच्चों को भी उपलब्ध हो जाते हैं।
## उदाहरण के साथ साधारण इंहेरिटेंस
यदि हमें दो क्लास हैं जैसे कि Person और Employee, तो हम एक Employee क्लास को Person क्लास से inherit कर सकते हैं। जब आप इसे करेंगे, तो Employee क्लास में Person क्लास में डिफाइंड करे गए सभी मेथड और वेरिएबल उपलब्ध हो जाएँगे।
चलिए एक उदाहरण के द्वारा समझते हैं कि इंहेरिटेंस का इस्तेमाल कैसे किया जाता है।
class Person {
private String name;
private int age;
public Person(String name, int age)
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
class Employee extends Person {
## Employee क्लास में डिफाइंड किए गए वेरिएबल और मेथड्स को प्रिंट करें
private int employeeId;
private double salary;
public Employee(String name, int age, int employeeId, double salary) {
super(name, age);
this.employeeId = employeeId;
this.salary = salary;
}
public int getEmployeeId() {
return this.employeeId;
}
public double getSalary() {
return this.salary;
}
public void setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void printDetails() {
System.out.println("Name: " + super.getName());
System.out.println("Age: " + super.getAge());
System.out.println("Employee ID: " + this.employeeId);
System.out.println("Salary: " + this.salary);
}
}
इस उदाहरण में हमने एक Person क्लास बनाई है जो दो वेरिएबल्स (name और age) और चार मेथड्स (getName, getAge, setName और setAge) का उपयोग करती है।
Employee क्लास में हमने इसको inherit किया है। Employee क्लास में हमने दो वेरिएबल्स (employeeId और salary) और चार मेथड्स (getEmployeeId, getSalary, setEmployeeId और setSalary) जो Person क्लास में डिफाइंड नहीं किए गए हैं, को बनाया है। इसके अलावा, हमने एक और मेथड (printDetails) को Employee क्लास में डिफाइंड किया है जो Person क्लास में उपलब्ध नहीं है।
Also Read
Features Of Java In Hindi | जावा की विशेषताएं
Types Of Inheritance In Java In Hindi
Java में Inheritance के तीन प्रकार होते हैं। Types Of Inheritance In Java In Hindi निम्नलिखित हैं:
- Single Inheritance (एकल अनुवांशिकता)
- Multilevel Inheritance (बहु-स्तरीय अनुवांशिकता)
- Hierarchical Inheritance (वृत्तचौकी अनुवांशिकता)
ये तीनों प्रकार एक Class से दूसरे Class को Inherit करने के तरीके होते हैं।
Single Inheritance In Java In Hindi
सिंगल इन्हेरिटेंस जावा में एक इन्हेरिटेंस का प्रकार है जहाँ एक सुपर क्लास एक सब क्लास के रूप में उपयोग किया जाता है। सिंगल इन्हेरिटेंस में, एक सब क्लास केवल एक सुपर क्लास से inherit किया जाता है। यहाँ हम इसके एक उदाहरण को देखेंगे जो सिंगल इन्हेरिटेंस के एक सरल उदाहरण को दर्शाता है।
एक सरल उदाहरण
यहाँ हमने एक सरल उदाहरण बनाया है जिसमें एक सुपर क्लास और उससे inherit किए गए एक सब क्लास हैं।
सुपर क्लास
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } }
इस उदाहरण में हमने एक Person क्लास बनाई है जो दो वेरिएबल्स (name और age) और चार मेथड्स (getName, getAge, setName और setAge) का उपयोग करती है।
सब क्लास
public class Employee extends Person { private int employeeId; private double salary; public Employee(String name, int age, int employeeId, double salary) { super(name, age); this.employeeId = employeeId; this.salary = salary; } public int getEmployeeId() { return this.employeeId; } public double getSalary() { return this.salary; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public void setSalary(double salary) { this.salary = salary; } }
Employee क्लासEmployee क्लास Person क्लास से inherit किया गया है। इसमें दो वेरिएबल्स (employeeId और salary) और चार मेथड्स (getEmployeeId, getSalary, setEmployeeId और setSalary) हैं। इसके अलावा, Employee क्लास का constructor दो Person क्लास के arguments को ग्रहण करता है और उन्हें super की मदद से सेट करता है।
Multilevel Inheritance In Java In Hindi
जब एक क्लास दूसरे क्लास को inherit करता है और उसके बाद फिर वही क्लास दूसरे क्लास को inherit करता है तो वह मल्टीलेवल इन्हेरिटेंस कहलाता है। इसके अंतर्गत, सबसे ऊपर का क्लास सबसे नीचे वाले क्लास को inherit करता है।
इसका एक उदाहरण देखते हैं। यहाँ हम एक Person क्लास, जो एक व्यक्ति की जानकारी स्टोर करता है, बनाते हैं। फिर हम एक Employee क्लास बनाते हैं जो Person क्लास को inherit करता है और जो कंपनी में एक कर्मचारी की जानकारी स्टोर करता है। फिर उसके बाद हम एक Manager क्लास बनाते हैं जो Employee क्लास को inherit करता है और जो कंपनी में एक प्रबंधक की जानकारी स्टोर करता है।
कोड उदाहरण
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Employee extends Person {
private int employeeId;
private double salary;
public Employee(String name, int age, int employeeId, double salary) {
super(name, age);
this.employeeId = employeeId;
this.salary = salary;
}
public int getEmployeeId() {
return employeeId;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
public class Manager extends Employee {
arduinoCopy codeprivate String department;
public Manager(String name, int age, int employeeId, double salary, String department) {
super(name, age, employeeId, salary);
this.department = department;
}
public String getDepartment() {
return department;
}
}
इसके अंतर्गत, Person क्लास के दो वेरिएबल्स (name और age) औरउनके गेटर और सेटर Employee क्लास में भी उपलब्ध होते हैं, क्योंकि Employee क्लास Person क्लास को inherit करता है। इसी तरह, Employee क्लास के वेरिएबल्स (employeeId और salary) और Manager क्लास के वेरिएबल्स (department) भी समान होते हैं।
Hierarchical Inheritance In Java In Hindi
विरासत एक ऐसा कंडीशन होता है जिससे एक वर्ग (Class) दूसरे वर्ग से विरासत लेता है। जब एक वर्ग अन्य वर्गों से विरासत लेता है, जिससे वह वर्ग वहीं से विरासत लेता है। इसलिए, इसे “विरासत में ऊपरों की विरासत” कहा जाता है।
जैसा कि हमने पहले भी देखा है, जब एक वर्ग एक अन्य वर्ग से विरासत लेता है, तो उस वर्ग को वह वर्ग से समस्त संपत्तियां और मापदंड विरासत में मिलती हैं। लेकिन जब एक वर्ग दो या दो से अधिक वर्गों से विरासत लेता है, तब वह वर्ग सभी उप-वर्गों से उनकी संपत्तियों और मापदंडों को विरासत में लेता है।
यह अधिक से अधिक बार विरासत वाले वर्गों में एक वर्ग को अन्य वर्गों के साथ संबोधित करने की अनुमति देता है। इस तरह की विरासत को “विरासत में ऊपरों की विरासत” कहा जाता है।
यहां एक उदाहरण हैं:
class Animal { void eat() { System.out.println("Animal is eating"); } } class Cat extends Animal { void meow() { System.out.println("Cat is meowing"); } } class Dog extends Animal { void bark()
class Animal { void eat() { System.out.println("Animal is eating"); } } class Cat extends Animal { void meow() { System.out.println("Cat is meowing"); } } class Dog extends Animal { void bark() { System.out.println("Dog is barking"); } } class Main { public static void main(String[] args) { Cat c = new Cat(); c.meow(); c.eat(); scssCopy codeDog d = new Dog(); d.bark(); d.eat(); } }
इस उदाहरण में `Animal` वर्ग एक सामान्य जानवर का वर्ग है, जो `eat()` नामक एक विधि प्रदान करता है। `Cat` वर्ग एक `Animal` वर्ग से विरासत लेता है जो `meow()` नामक एक विधि प्रदान करता है। `Dog` वर्ग भी `Animal` वर्ग से विरासत लेता है जो `bark()` नामक एक विधि प्रदान करता है।
`Main` वर्ग में हमने दो अलग-अलग वर्गों के एक उदाहरण बनाया है जो उनकी विशेषताओं का उपयोग कर
Inheritance के फायदे
Inheritance का उपयोग करने के कुछ फायदे हैं:
Code Reusability
Inheritance से कोड रीयूजेबिलिटी (code reusability) बढ़ती है। कोड को दोबारा लिखने की जरूरत नहीं होती है और फंक्शन को स्वत: बहुत सारे जगहों पर उपयोग किया जा सकता है।
Time-Saving
Inheritance का उपयोग करके समय कम लगता है और कोडिंग के माध्यम से बड़ी परियोजनाएं को संभव होता है।
Ease of Development
इन्हेरिटेंस का उपयोग करके, हमें नई विशेषताएं और विधियाँ जोड़ने के लिए सुपरक्लास को बदलने की जरूरत नहीं होती है। हम सिर्फ सबक्लास में नई विशेषताओं को जोड़ने की आवश्यकता होती है और इसे सुपरक्लास के मौजूदा कोड को प्रभावित नहीं करते हुए विकसित कर सकते हैं। यह प्रोग्राम के विकास को सुगम बनाता है और बगों के निवारण में मदद करता है।
Extensibility
इन्हेरिटेंस के द्वारा, हम सबक्लास में नई विशेषताएं और विधियाँ जोड़ सकते हैं जो सुपरक्लास के विशेषताओं को पूरा करती हैं। इससे प्रोग्राम की अनुप्रयोगिता बढ़ती है क्योंकि हम नए फंक्शनैलिटी को मौजूदा बेसिक संरचना में जोड़ सकते हैं और पूरे कोड को प्रभावित किए बिना उसे विस्तारित कर सकते हैं।
Hierarchy
इन्हेरिटेंस के द्वारा, हम क्लास को हियरार्की में व्यवस्थित कर सकते हैं। एक सुपरक्लास के अलावा हम बहुत सारे सबक्लास बना सकते हैं जो उसे विस्तारित करते हैं और अपने अपने सदस्य और विधियों को शामिल करते हैं। इससे प्रोग्राम का संरचना प्रबंधन करना और कोड को अधिक सुविधाजनक बनाना आसान होता है।
Polymorphism
इन्हेरिटेंस का उपयोग करके, हम पॉलीमॉर्फिज़म की विशेषता का भी लाभ उठा सकते हैं। पॉलीमॉर्फिज़म के द्वारा, हम सबक्लास ऑब्जेक्ट को सुपरक्लास रूप में उपयोग कर सकते हैं और उसे सुपरक्लास या सबक्लास के रूप में चला सकते हैं। यह अधिकतर दृष्टिकोण से प्रोग्राम को लचीला बनाता है
निष्कर्ष
इस लेख में हमने जाना कि Java में Inheritance क्या होती है (What is Inheritance in Java In Hindi) और इसके क्या फायदे होते हैं। Inheritance एक महत्वपूर्ण अवधारणा है जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में कोड रीयूज़ और रचनात्मकता को बढ़ाने का माध्यम प्रदान करती है।
इस लेख में Inheritance in Java In Hindi के बारे में मैंने व्याख्यान किया है और मुझे आशा है कि यह आपके लिए मददगार साबित हुआ होगा। कृपया अपनी प्रतिक्रिया और सुझाव साझा करें ताकि मैं अपने लेखों को सुधारने में मदद कर सकूँ। धन्यवाद!
Also, Read