Introduction to
Java Inheritance
Java में inheritance का
concept बहुत ही interesting है। यह हर programmer की day to
day life में बहुत सा समय की बचत करता है और workload को कम करता है।
जैसे पिता की संपत्ति पर पुत्र का अधिकार होता है और पुत्र उस संपति का उपयोग करता है। वैसे ही यदि आप चाहे तो एक class को पिता (super class) बना सकते है, और दूसरी class को पुत्र (sub class) बना सकते है। ऐसा करने से एक class दूसरी class की properties (methods, variables etc ) को access कर सकती है। ऐसा करने से पुत्र (sub class) को पिता (super class) की सम्पूर्ण property (methods, variables etc ) को access करने के अधिकार हासिल हो जाते है।
Use Methods/Variables of Existing Class
कल्पना कीजिये आपने कोई class पहले से create की हुई है और इस class में कुछ ऐसे methods है जो आपकी किसी दूसरी class में भी काम आ सकते है। Java
inheritance feature की मदद से इन
methods को दुबारा लिखने की बजाय आप पिछली पुरानी class में से उन methods को access
कर सकते है।
A Class Extend Another Class
ऐसा करने के लिए जो class methods को access करना चाहती है उसे दूसरी class की sub class बनना होगा। Sub class बनने के लिए आपकी class को उस दूसरी class को extend करना होगा। इसे ही java में inheritance कहते है।
No Need to Write Same Code Again
Java के inheritance feature से आप एक ही code को बार बार लिखने की उलझन से बच जाते है। Inheritance की इस खूबी को re-usability कहते है। यानि एक ही code को बार बार अलग अलग जगह पर reuse किया जा सकता है।
extends Keyword
जब कोई एक class दूसरी class को inherit करना चाहती है तो वह extends keyword Use करती है। Java में inheritance perform करने के लिए
extends keyword का इस्तमाल करना जरुरी है।
Classes with Final Keyword Can Not Be Inherited
जिन classes के नाम से पहले final keyword होता है उन्हें
inherit नहीं किया जा सकता है। इसलिए यदि आप कोई ऐसी class create करना चाहते है जिसे कोई inherit न करे तो final keyword का इस्तमाल करते है।
Multiple Inheritance Not Allowed
कोई भी class सिर्फ एक ही class को extend
कर सकती है। जब कोई class एक से ज्यादा classes को extend
करती है तो वह multiple inheritance कहलाता है। और में आपको बताना चाहता हुँ की Java में multiple inheritance allow नहीं है। इसकी जगह पर आप
multilevel inheritance implement कर सकते है। जिस class को inherit किया जाता है वह super class कहलाती है। और जो class inherit करती है वह
subclass कहलाती है।
Only Public and Protected Members Can Be Accessed
यँहा पर एक ध्यान देने की बात ये है की sub class super class के सभी methods और
variables को access
नहीं कर सकती है। जो methods public और protected declare किये हुए है उन्हें ही sub
class access कर सकती है।
Super class के किसी भी private member को subclass access नहीं कर सकती है। यदि
super class ने किसी और class को extend
कर रखा है तो उस class के भी सभी public और
protected members को आपकी class Use कर सकती है।
Java में 3
तरह से inheritance को Use किया जाता है। आपकी application के लिए आपको जो
suitable लगे आप वही तरीका Use कर सकते है। इन तीनों तरीकों के बारे में निचे दिया जा रहा है।
Single Inheritance :-
Multilevel Inheritance:-
Multilevel inheritance में एक class दूसरी class को extend करती है और दूसरी class तीसरी class को extend करती है।
Hierarchical Inheritance :-
Inheriting a Java
Class
यदि आप किसी class को inherit करना चाहते है तो आप extends keyword उसे करते है। आप अपनी class के नाम के बाद
extends keyword लगाते है। और उसके बाद आप जिस class को inherit करना चाहते है उस class का नाम लिखते है।
Example1: Inherit a java class
class A {
public void display()
{
System.out.println("This is A class");
}
}
class B extends A {
public static void
main(String args[])
{
display();
}
Introduction to Java Constructors
यदि आप
object को use करने से
पहले कुछ
task perform करना चाहते है
जैसे की
variable को initialize करना आदि
तो आप
java constructor create करते
है। Objects को Use करने से
पहले जो
जरुरी काम
आप करना
चाहते है
वो सब
आप constructor में कर
सकते है।
मिसाल के तौरपर आप
जिस class का object create कर
रहे है
उसके variables में कोई
values नहीं है।
ये values आप user से
object create करते समय input करवाना चाहते
है। Object CREATE करते
समय user values(arguments) pass करता है।
अब आप
को इन
values
को अपनी
class के variables को assign करना
है। ये
काम आप
constructor के through करते है।
यदि आप constructor में उन values को assign नहीं करते है तो java के जरिये default constructor call किया जाता है। और सभी
class member variables को initial values assign हो जाती है। Constructors java के memory allocation process का
part है।
Java constructors की कुछ characteristics होती है। इन्हे आप constructors Create करने के rules भी कह सकते है।
एक method की तरह ही होता है।
इसका नाम class के नाम जैसा ही होता है।
कोई return type नहीं होता है।
Types of Java
Constructors
Java में 4 तरह के constructors होते है। इन सभी के बारे में निचे दिया जा रहा है।
Default Constructor:-
जब आप कोई
constructor create नहीं करते है तो java
automatically default constructor call करती है। ये constructor सभी
variables को उनके data type के according initial value के साथ memory allocate कर देता है।
Normal Constructor :-
ये java constructor आप खुद create करते है। और इसकी body में class variables को खुद ही
compile time पर
initialize करते है।
Example1: Declare normal constructor
class Person
{
String Name;
int age;
Person() //Constructor
{
Name = "Vipin"
age = 24;
}
public void display()
{
System.out.println("Name is :
"+Name+" Age is: "+age);
}
}
class NorCon {
public static void main(String args[])
{
Person p1 = new Person();
p1.display();
}
}
Parameterized Constructors :-
Java constructors में आप parameters भी pass कर सकते है।
Objects Create करते वक्त आप variables की value arguments की तरह pass कर सकते है। ये values
आप constructor में variables को assign कर सकते है।
Example2: A Constructor with two parameters
class Person
{
String Name;
int age;
Person(String n, int a) {
Name = n;
age = a;
}
public void display()
{
System.out.println("Name is :
"+Name+" Age is: "+age);
}
}
class ParaCon {
public static void main(String args[])
{
Person p1 = new Person("Vipin",
24);
p1.display();
}
}
Copy Constructor:-
Java में copy constructor को किसी object
की copy करने के लिए Use किया जाता है। जब आप एक object की value दूसरे object में copy करते है तो दोनों objects ही same values को point करते है। Copy constructors में आप class का object create करते समय उसी class का दूसरा object argument की तरह pass करते है।
Example3: Constructor copying one object to other
class Person
{
String Name;
int age;
Person(String n, int a)
{
Name = n;
age = a;
}
Person(Person p) // Copy Constructor
for p2 object
{
Name = p.Name;
age = p.age;
}
public void display()
{
System.out.println("Name is:
"+Name+" Age is: "+age);
}
}
class CopyCon {
public static void main(String args[])
{
Person p1 = new
Person("Vipin", age);
Person p2 = new Person(p1);
p1.display();
p2.display();
}
}
Tags:
Java