Java Inheritance

Introduction to Java Inheritance

जैसे पिता की संपत्ति पर पुत्र का अधिकार होता है और पुत्र उस संपति का उपयोग करता है। वैसे ही यदि आप चाहे तो एक class को पिता (super class) बना सकते है, और दूसरी class को पुत्र (sub class) बना सकते है। ऐसा करने से एक class दूसरी class की properties (methods, variables आदि ) को access कर सकती है। ऐसा करने से पुत्र (sub class) को पिता (super class) की सम्पूर्ण property (methods, variables आदि) को access करने के अधिकार प्राप्त हो जाते है।

कल्पना कीजिये आपने कोई class पहले से create की हुई है और इस class में कुछ ऐसे methods है जो आपकी किसी दूसरी class में भी काम आ सकते है। इन methods को दुबारा लिखने की बजाय आप पिछली पुरानी class में से उन methods को access कर सकते है। ऐसा करने के लिए जो class methods को access करना चाहती है उसे दूसरी class की sub class बनना होगा। Sub class बनने के लिए आपकी class को उस दूसरी class को extend करना होगा। इसे ही inheritance कहते है।

Inheritance से आप एक ही code को बार बार लिखने की उलझन से बच जाते है। Inheritance की इस खूबी को re-usability कहते है। यानि एक ही code को बार बार अलग अलग जगह पर reuse किया जा सकता है।

जब कोई एक class दूसरी class को inherit करना चाहती है तो वह extends keyword यूज़ करती है। और यदि आप चाहते है की आपके के द्वारा बनायीं हुई class को कोई दूसरी class inherit ना करे तो इसके लिए आप class के नाम से पहले final keyword लगा देते है। जिन classes के नाम से पहले final keyword होता है उन्हें inherit नहीं किया जा सकता है।

कोई भी class सिर्फ एक ही class को extend कर सकती है। जब कोई class एक से अधिक classes को extend करती है तो वह multiple inheritance कहलाता है। और में आपको बताना चाहता हुँ की जावा में multiple inheritance allow नहीं है। इसकी जगह पर आप multilevel inheritance implement कर सकते है।

जिस class को inherit किया जाता है वह super class कहलाती है। और जो class inherit करती है वह sub class कहलाती है। यँहा पर एक ध्यान देने योग्य बात ये है की sub class super class के सभी methods और variables को access नहीं कर सकती है। जो methods public और protected declare किये हुए है उन्हें ही sub class access कर सकती है। Super class के किसी भी private member को sub class access नहीं कर सकती है। यदि super class ने किसी और class को extend कर रखा है तो उस class के भी सभी public और protected members को आपकी class यूज़ कर सकती है।

Types of Java Inheritance

Java में 3 तरह से inheritance को यूज़ किया जाता है। आपकी application के लिए आपको जो suitable लगे आप वही तरीका यूज़ कर सकते है। इन तीनों तरीकों के बारे में निचे दिया जा रहा है।

Single Inheritance

Single inheritance में एक class किसी दूसरी क्लास को extend करती है। इस तरह के के inheritance का उपयोग basic programming में किया जाता है।

Single Inheritance

Multilevel inheritance

Multilevel inheritance में एक class दूसरी class को extend करती है और दूसरी class तीसरी class को extend करती है।

Multilevel Inheritance

Hierarchical inheritance

Hierarchical inheritance में एक class को बहुत सी classes extend करती है। इस तरह inheritance का प्रयोग जब किया जाता जब super class के task के कई sub task होते है।

Hierarchical Inheritance

Inheriting a Class

यदि आप किसी class को inherit करना चाहते है तो आप extends कीवर्ड उसे करते है। आप अपनी class के नाम के बाद extends keyword लगाते है और उसके बाद आप जिस class को inherit करना चाहते है उस class का नाम लिखते है। Inheritance का उदाहरण निचे दिया जा रहा है।

class A
{
    public void display()
    {
      System.out.println("This is A class");
   }

    public static void main(String args[])
    {
        display();    
   }
}

class B extends A
{
    public static void main(String args[])
    {
        display();
    }
}