Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🟣 OOP  ·  Lesson 19

Inheritance

Inheritance क्या है

Inheritance एक class को दूसरी के fields और methods दोबारा इस्तेमाल करने देता है। Child class extends से parent class से inherit करती है, parent का सब कुछ साथ में अपने जोड़ पाकर। यह साझा code दोहराने से बचाता है और "is-a" संबंध बनाता है (Dog एक Animal है)।

💡 class Dog extends Animal मतलब Dog, Animal से सब कुछ inherit करता है।

extends इस्तेमाल

class Animal {
    void eat() { System.out.println("eating"); }
}
class Dog extends Animal {
    void bark() { System.out.println("woof"); }
}
// इस्तेमाल:
Dog d = new Dog();
d.eat();    // Animal से inherited
d.bark();   // अपना
eating
woof

Dog extends Animal Dog को eat() method मुफ़्त देता है, और Dog अपना bark() जोड़ता है। एक keyword parent की सारी क्षमताएँ खोल देता है।

Method override करना

class Animal {
    void sound() { System.out.println("Some sound"); }
}
class Cat extends Animal {
    void sound() {          // override
        System.out.println("Meow");
    }
}
// इस्तेमाल:
new Cat().sound();
Meow

Child उसी नाम का अपना define करके inherited method बदल सकती है — यह overriding है। Cat object के लिए, parent के बजाय child का sound() चलता है।

Inheritance में super

class Person {
    Person(String name) { System.out.println("Person: " + name); }
}
class Student extends Person {
    Student(String name) {
        super(name);        // parent constructor call करो
        System.out.println("Student created");
    }
}
new Student("Aman");
Person: Aman
Student created

super(name) पहले parent का constructor call करता है, फिर child जारी रहता है। super parent की override की method भी super.method() से call करता है।

Inheritance के प्रकार

  • Single: एक child, एक parent (Dog → Animal)।
  • Multilevel: एक श्रृंखला (Puppy → Dog → Animal)।
  • Hierarchical: एक parent के कई children (Dog और Cat दोनों → Animal)।

Java इन्हें classes से support करती है। यह classes का multiple inheritance (एक child, कई parents) support नहीं करती।

Multiple inheritance क्यों नहीं

Java एक class को एक साथ दो classes extend करने नहीं देती, diamond problem बचाने को: अगर दोनों parents की एक ही नाम वाली method हो, child तय नहीं कर सकता कौन-सी इस्तेमाल करे। कई स्रोतों से व्यवहार जोड़ने को, Java interfaces इस्तेमाल करती है, जो इस अस्पष्टता से बचते हैं।

आम गलतियाँ

  • गलत parent नाम। extends Animal को Animal मौजूद और सही spelling चाहिए।
  • गलती से override करना। Parent method नाम दोबारा इस्तेमाल उसे बदल देता है — अनचाहा हो तो rename कीजिए।
  • Parent setup को super(...) भूलना। Parameterised parent constructor को call करना ज़रूरी।
  • दो classes extend करने की कोशिश। Allowed नहीं — इसके बजाय interfaces इस्तेमाल कीजिए।

सारांश

  • Inheritance parent के fields और methods को extends से दोबारा इस्तेमाल करता है।
  • Child को parent के members साथ में अपने मिलते हैं।
  • Overriding उसी नाम से inherited method बदलता है।
  • super parent का constructor या override की method call करता है।
  • Java single, multilevel और hierarchical allow करती है — classes का multiple inheritance नहीं।

आगे, this और super गहराई से इस्तेमाल कीजिए, या व्यवहार जोड़िए abstraction और interfaces से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Java में inheritance क्या है?
Inheritance एक class (child) को दूसरी class (parent) के fields और methods extends keyword से दोबारा इस्तेमाल करने देता है। Child को parent का सब कुछ मिलता है, साथ में जो वो जोड़े, जो code दोहराने से बचाता है।
Method overriding क्या है?
Overriding तब है जब child class उसी नाम और parameters के साथ parent की पहले से मौजूद method का अपना version दे। Child object के लिए, parent के बजाय child का version चलता है।
Java में inheritance के प्रकार क्या हैं?
Java single (एक parent), multilevel (श्रृंखला: A → B → C), और hierarchical (एक parent के कई children) support करती है। यह classes का multiple inheritance support नहीं करती, पर interfaces से मिलते लक्ष्य हासिल करती है।
Java classes का multiple inheritance क्यों allow नहीं करती?
"diamond problem" बचाने को, जहाँ दो parents की एक ही method हो और child तय न कर सके कौन-सी इस्तेमाल करे। Java classes को यह अस्पष्टता बचाती है, और व्यवहार जोड़ने को interfaces इस्तेमाल करती है।
Inheritance में super keyword क्या करता है?
super child को उसके parent तक पहुँच देता है — parent का constructor super(...) से, या parent की override की method super.method() से call करके। यह child को उस parent से जोड़ता है जिसे वो extend करता है।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicPolymorphism आपकी प्रगति: 19 / 61 (31%) · Lesson 20 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें