Inheritance in Java in Hindi

Last Updated on March 17, 2022 by RAJENDRAPRASAD

Inheritance in Java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |

दोस्तों, पिछले पोस्ट Class and Objects in Java in Hindi में आपने जाना कि, Class and Objects क्या है , Class and object कैसे create करते हैं, class के members को object की सहायता से कैसे call करते हैं आदि के बारे में विस्तार से जाना |

आज के इस पोस्ट Inheritance in Java in Hindi में आप जानेंगे कि, Inheritance क्या है , यह कितने types के होते हैं | इनका Java में क्या महत्त्व है |

आइए सबसे पहले जाने कि Inheritance का मतलब क्या होता है ?

इसका किताबी अर्थ है, विरासत अथवा उत्तराधिकार |

जैसे एक पुत्र को, उसके पिता की Property, जमीन – जायजाद  विरासत में मिलती है, जिसे पुत्र आवश्यकतानुसार अपने हिसाब से use कर सकता है, उसकी property तो modify कर सकता है | ठीक उसी तरह Java में भी होता है |

मान लो कि, आप एक Smartphone manufacturer हो, और आप अलग – अलग functions वाले, अलग – अलग  version वाले smart phone बनाते हो, किसी में finger sensor है तो किसी में Eye scanner है, किसी phone में RAM ज्यादा है तो किसी phone में Internal Memory space ज्यादा है, फिर भी सभी smart phone कुछ common functions जरूर हैं जैसे touch screen , mike , speaker इत्यादि |

यहाँ पर सभी प्रकार के mobile के लिए अलग – अलग design (Blueprint) बनाने से अच्छा है कि आप एक basic smartphone design कर ले और उसके बाद, अलग – अलग version में उस design को extend अर्थात विस्तार करते हुए अलग – अलग specifications को add करते जाएँ |

ठीक इसी तरह Java में Inheritance की सहायता से हम एक Basic features और behavior वाले class को create करते हैं और उसके बाद उसी class को extend करके उसका specialized version create करते हैं, जिसमें उस class के सारे Basic features और behavior , Inherit रहते हैं अर्थात मौजूद होते हैं |

Inheritance in Java – Inheritance क्या है ?

Inheritance यह एक ऐसा process हैं, जिसका use करके एक class किसी दूसरे class की properties (fields and methods) को acquire अर्थात प्राप्त करता है |

Child Class:

ऐसा class जो किसी दूसरे class की properties को extend करता है, उसे Child Class, Sub-Class अथवा Derived Class कहते हैं |

Parent Class:

ऐसा class जिसकी properties और functionality को किसी दूसरे Class द्वारा inherit किया जाता है, उसे Parent Class, Super-Class अथवा Base Class कहते हैं |

Example:

Class Xyz extends Abc {}

यहाँ class Xyz , class Abc को extend कर रहा है | अतः class Abc एक Parent Class है और class Xyz एक Child Class है |

NOTE : जब एक class किसी दूसरे class को inherit करना चाहता है, तो उसे extends keyword का use करना पड़ता है | ठीक उसी तरह, जब एक Interface किसी दूसरे Interface को inherit करना चाहता है, तो उसे भी extends keyword का use करना पड़ता है, जिसे हम आगे आने वाले पोस्ट में जानेंगे |

Advantage of inheritance in java

यह हमें code reusability प्रदान करता है, जिसके द्वारा एक class किसी दूसरे class को extend करके उसके variables और methods को बार – बार use कर सकता है |

सरल शब्दों में कहें तो, हम किसी Class में basic variables और method को एक बार ही लिखते हैं और जरुरत पड़ने पर, कोई भी Class उस Class को extend करके बार – बार उसके variables और methods को use कर सकता है |

जो code parent Class में पहले से ही मौजूद हो उसे, हमें child Class में फिर से नहीं लिखना पड़ता |

Syntax:

class ChildClass extends ParentClass  
{   
   //fields
   //methods
} 

Program 1:

class SmartPhone {

	int ram;
	int internalMemory;
	boolean camera;
	boolean mike;

	void displayClock() {
		System.out.println("DisplayClock method from SmartPhone class");
	}

	void launchCamera() {
		System.out.println("LaunceCamera method from SmartPhone class");
	}
}

class Samsung extends SmartPhone {

	boolean fingerTouch;
	boolean eyeSensor;

	void unlockScreenUsingFinger() {
		System.out.println("unlockScreenUsingFinger method from Samsung class");
	}

	void unlockScreenUsingEyeSensor() {
		System.out.println("unlockScreenUsingEyeSensor method from Samsung class");
	}
}

public class InheritanceDemo {

	public static void main(String[] args) {
		Samsung s = new Samsung();
		s.displayClock();
		s.launchCamera();
		s.unlockScreenUsingFinger();
		s.unlockScreenUsingEyeSensor();
	}
}

OutPut:

DisplayClock method from SmartPhone class
LaunceCamera method from SmartPhone class
unlockScreenUsingFinger method from Samsung class
unlockScreenUsingEyeSensor method from Samsung class

Types of Inheritance

Single Inheritance:

जब एक Class , दूसरे Class द्वारा inherit किया जाता है, तब उसे Single Inheritance कहते हैं |

Program 2:

class Animal {
	void eat() {
		System.out.println("Eating...");
	}
}

class Lion extends Animal {
	void roar() {
		System.out.println("Roaring...");
	}
}

class SingleInheritanceDemo {
	public static void main(String args[]) {
		Lion l = new Lion();
		l.roar();
		l.eat();
	}
}

OutPut:

Roaring...
Eating...

Multilevel Inheritance:

इसमें Derived(child) Class किसी Base(parent) को inherit करता है, साथ ही साथ वही Derived Class किसीऔर Class के लिए Base Class का कार्य करता है |

Program 3:

class Animal {
	void eat() {
		System.out.println("Eating...");
	}
}

class Lion extends Animal {
	void roar() {
		System.out.println("Roaring...");
	}
}

class Cub extends Lion {
	void weep() {
		System.out.println("Weeping...");
	}
}

class MultilevelInheritanceDemo {
	public static void main(String args[]) {
		Cub c = new Cub();
		c.weep();
		c.roar();
		c.eat();
	}
}

OutPut:

Weeping...
Roaring...
Eating...

Hierarchical Inheritance:

जब दो या दो से अधिक class किसी एक ही class को inherit करते हैं, उसे hierarchical Inheritance कहते हैं |

Program 4:

class Animal {
	void eat() {
		System.out.println("Eating...");
	}
}

class Lion extends Animal {
	void roar() {
		System.out.println("Roaring...");
	}
}

class Tiger extends Animal {
	void weep() {
		System.out.println("Running...");
	}
}

class HierarchicalInheritanceDemo {
	public static void main(String args[]) {
		Tiger t = new Tiger();
		t.weep();
		t.eat();
	}
}

OutPut:

Running...
Eating...

Multiple Inheritance:

इसमें एक ही class के, एक से अधिक parent Class होते हैं |

NOTE: Java  में हम Inheritance का use करके Multiple Inheritance को achieve नहीं कर सकते  हैं | जब भी हम ऐसा करने की कोशिश करते हैं, Compile time error प्राप्त होता है |

Multiple Inheritance को achieve करने के लिए Interface का use किया जाता है, जिसे हम आगे आने वाले post में विस्तार से जानेंगे |

Program 5:

class Animal {
	void breath() {
		System.out.println("Brithing as Animal...");
	}
}

class Plant {
	void breath() {
		System.out.println("Brithing as Plant...");
	}
}

class MultipleInheritanceDemo extends Animal,Plant{

	public static void main(String args[]) {
		MultipleInheritanceDemo m = new MultipleInheritanceDemo();
		m.breath();  //not able to decide which breath method to call, from Animal or from Plant 
	}
}

OutPut:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

	at com.javapractice.MultipleInheritanceDemo.main(MultipleInheritanceDemo.java:15)

Why Java does not support Multiple Inheritance?

उपर के program 5 में MultipleInheritanceDemo क्लास, Animal Class तथा Plant Class दोनों को ही inherit करता है, अब run time के दौरान जब हम इस Class के object की सहायता से breath() method को call करते हैं, तब object यह समझ ही पाता कि वह Animal  की तरह breath अर्थात साँस ले या फिर Plan की तरह |

इस तरह object के लिए बहुत बड़ा confusion create हो जाता है | इस प्रकार का confusion न हो, इसलिए Java Multiple Inheritance को support नहीं करता |

Hybrid Inheritance:

यह दो या दो से अधिक types of Inheritance से मिलकर बना होता है |

चूँकि, Java Multiple Inheritance को support नहीं करता, इसलिए यह Hybrid Inheritance को भी support नहीं करता |

उपर दिए हुए Image में Hierarchical और Multiple Inheritance को जोड़कर Hybrid Inheritance को बनाया गया है |

Important facts about inheritance in Java

1. Java में Object Class को छोड़कर, हर एक Class का कोई ना कोई Super Class जरूर होता है | जब भी किसी Class का कोई super Class नहीं होता, उस स्थिति में by default Object Class ही उसका super Class होता है |

2. एक class के एक से अधिक sub class हो सकते है, परन्तु किसी भी sub class के एक से अधिक super class नहीं हो सकते |

Method Overriding in Java Inheritance:

अब तक हमने जाना कि child class का object, Parent Class के methods को call कर सकता है |

परन्तु, मान लो कि कोई एक method  है जो child Class में भी है और parent Class में भी है, तब क्या होगा ?

ऐसी स्थिति में child  Class का method अपने parent Class के method को override कर देता है, और जब भी हम child Class के object से उस method को call करेंगे तब केवल और केवल child Class का ही method call होगा |

Program 6:

class Animal {
	void breath() {
		System.out.println("Breathing as Parent...");
	}
}

class methodOverrideMemo extends Animal {

	void breath() { // Overriding parent method 
		System.out.println("Breathing as Child...");
	}

	void eat() {
		System.out.println("eating as Child...");
	}

	public static void main(String args[]) {
		methodOverrideMemo m = new methodOverrideMemo();
		m.breath();
		m.eat();
	}
}

OutPut:

Breathing as Child...
Breathing as Child...

Super keyword in Inheritance:

अब मान लो child Class और parent Class दोनों में same method है और हमें child Class के method के साथ ही साथ parent Class का method भी call करना है, तो अब क्या करें ?

ऐसी स्थिति में हमें super keyword का use करना होगा |

Program 7:

class Animal {
	void breath() {
		System.out.println("Breathing as Parent...");
	}
}

class methodOverrideMemo extends Animal {

	void breath() {
		System.out.println("Breathing as Child...");
	}

	void callBreath() {
		breath();
		super.breath();
	}

	public static void main(String args[]) {
		methodOverrideMemo m = new methodOverrideMemo();
		m.callBreath();
	}
}

OutPut:

Brithing as Child...
Brithing as Parent...

Final Keyword और Inheritance:

मान लो, हमें ऐसा Class बनाना है जिसे कोई भी अन्य Class, Inherit ना कर पाए |

इसके लिए हमें final keyword का use करना होगा |

Program 8:

final class Animal {
	void breath() {
		System.out.println("Brithing as Animal...");
	}
}

class Pen extends Animal {
	void write() {
		System.out.println("Writing on Paper...");
	}
}

class FinalKeywordDemo {

	public static void main(String args[]) {
		Pen p = new Pen();
		p.breath();
		p.write();
	}
}

OutPut:

FinalKeywordDemo.java:7: error: cannot inherit from final Animal

Conclusion – आज आपने क्या सीखा

इस post में आपने जाना कि, Inheritance बहुत ही उपयोगी है, यह हमें Code reusability प्रदान करता है |

हम एक बार variables और methods को किसी class में define करके, बार-बार उस class को किसी भी अन्य class द्वारा extend करके उस variables तथा methods को बार-बार use कर सकते हैं |

इस तरह time के साथ ही साथ memory optimization भी होता है |

इसके अलावा Inheritance के types, super keyword, final keyword आदि के बारे में विस्तार से जाना |

आशा है कि, आपको मेरा यह Blog Inheritance in Java in hindi, जरूर पसंद आया होगा |

अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |

इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |

Leave a Comment