सुपर कीवर्ड वेगवेगळ्या परिस्थितीत वापरला जातो . या पोस्टसह प्रारंभ करण्यापूर्वी आम्ही तुम्हाला अधिक चांगल्या प्रकारे समजून घेण्यासाठी Java मधील वारसाबद्दल जाणून घेण्यास प्रोत्साहित करतो.
Java मध्ये सुपर कीवर्ड काय आहे?
सुपर हा एक कीवर्ड आहे जो सुपरक्लासच्या ओव्हरराइड केलेल्या पद्धतींचा वापर करण्यासाठी तसेच सुपरक्लासच्या लपविलेल्या फील्डचा संदर्भ देण्यासाठी वापरला जाऊ शकतो.सुपर कीवर्ड का आणि केव्हा वापरायचा?
Java सुपर कीवर्डचे तीन स्पष्ट उपयोग आहेत.- जेव्हा चाइल्ड क्लासमध्ये त्याच नावाचे डेटा सदस्य असतील तेव्हा पालक वर्गाच्या डेटा सदस्यांमध्ये प्रवेश करा .
- चाइल्ड क्लासमधील पॅरेंट क्लासच्या डिफॉल्ट किंवा पॅरामीटराइज्ड कन्स्ट्रक्टरना कॉल करा .
- मुलाने ओव्हरराइड केलेल्या पद्धती असल्यास बाल वर्गातील पालक वर्ग पद्धतींना कॉल करा .
उदाहरण 1 - पालकांच्या डेटा सदस्यांमध्ये प्रवेश करा
उदाहरण 1 कार -प्रकार चाइल्ड क्लासमध्ये वाहन वर्गाचे गुणधर्म किंवा डेटा सदस्य कसे ऍक्सेस केले जाऊ शकतात हे स्पष्ट करते . नीट समजून घेण्यासाठी तुम्ही खालील स्निपेट चालवत असल्याची खात्री करा.
class Vehicle {
String name = "vehicle";
}
class Car extends Vehicle {
String name = "car";
public void printMyName() {
System.out.println(name);
}
public void printParentName() {
// use super keyword to access
// parent's data member / attribute
System.out.println(super.name);
}
public static void main(String[] args) {
Car myCar = new Car();
System.out.print("My Car's Name: ");
myCar.printMyName();
// printing the parent's name
// using the super keyword
System.out.print("My Parent Vehicle's Name: ");
myCar.printParentName();
}
}
आउटपुट
माझ्या कारचे नाव: कार माझ्या पालक वाहनाचे नाव: वाहन
उदाहरण 2 - बाल वर्गातील पालकांच्या कन्स्ट्रक्टर्समध्ये प्रवेश करा
सुपर() ला स्पष्टपणे कॉल केल्याने तुम्हाला चाइल्ड क्लासमधील पॅरेंट क्लासचे डीफॉल्ट किंवा पॅरामीटराइज्ड कन्स्ट्रक्टर दोन्ही ऍक्सेस करण्याची परवानगी मिळते. पॅरामीटराइज्ड कन्स्ट्रक्टरचे उदाहरण येथे आहे. पालक म्हणजेच शेप क्लासच्या कन्स्ट्रक्टरला ( super() वापरून ) मूल म्हणजे विशेषता सेट करण्यासाठी त्रिकोण क्लास म्हणतात . स्वतःसाठी आउटपुट तपासण्यासाठी खालील प्रोग्राम चालवा.
public class Shape {
String name;
public Shape(String n) {
System.out.println("Shape() parameterized constructor called!");
name = n;
}
}
class Triangle extends Shape {
int sides = 3;
String color;
public Triangle(String n, String c) {
// The super keyword calls the parameterized
// constructor of the parent (Shape) with
// 'n' as a parameter
super(n);
System.out.println("Triangle() parameterized constructor called!");
this.color = c;
}
public static void main(String[] args) {
Triangle myTriangle = new Triangle("Triangle Alpha", "Yellow");
System.out.println(myTriangle.name);
System.out.println(myTriangle.color);
}
}
आउटपुट
शेप() पॅरामीटराइज्ड कन्स्ट्रक्टर म्हणतात! त्रिकोण() पॅरामीटराइज्ड कन्स्ट्रक्टर म्हणतात! त्रिकोण अल्फा पिवळा
क्विक चॅलेंज : तुमच्या शिक्षणाची चाचणी घेण्यासाठी डीफॉल्ट कन्स्ट्रक्टर वापरून वरील प्रोग्रामची पुनर्रचना करा. तसेच, super() हे super(arg) पेक्षा कसे वेगळे आहे ते पहा .
उदाहरण 3 - मुलांच्या वर्गात पालकांच्या अधिलिखित पद्धतीमध्ये प्रवेश करा
उदाहरण 3 दाखवते की तुम्ही पालकांच्या वर्गाच्या पद्धतींमध्ये प्रवेश कसा करू शकता ज्याचा बाल वर्ग देखील परिभाषित करतो. खालील प्रोग्राममधील पॅरेंट क्लास ध्वनी मेथड व्हॉइस() परिभाषित करते . चाइल्ड क्लास ड्रममध्ये देखील त्याच नावाची पद्धत आहे म्हणजेच voice() . याचा अर्थ मेथड व्हॉइस सबक्लासद्वारे ओव्हरराइड केला जातो. चाइल्ड क्लासमध्ये पालक वर्गाच्या पद्धती वापरण्यासाठी सुपर कीवर्ड कसा आवश्यक आहे हे जाणून घेण्यासाठी खालील प्रोग्राम चालवा .
public class Sound {
public void voice() {
System.out.println("Play sound!");
}
}
class Drum extends Sound {
public void voice() {
System.out.println("Play drums!");
}
public void play() {
// The super keyword calls the
// voice() method of the parent
super.voice();
voice();
}
public static void main(String[] args) {
Drum myDrum = new Drum();
myDrum.play();
}
}
आउटपुट
शेप() पॅरामीटराइज्ड कन्स्ट्रक्टर म्हणतात! त्रिकोण() पॅरामीटराइज्ड कन्स्ट्रक्टर म्हणतात! त्रिकोण अल्फा पिवळा
GO TO FULL VERSION