सुपर कीवर्ड का उपयोग विभिन्न स्थितियों में किया जाता है। इस पोस्ट के साथ आरंभ करने से पहले हम आपको बेहतर समझ के लिए जावा में वंशानुक्रम के बारे में जानने के लिए प्रोत्साहित करते हैं।
जावा में सुपर कीवर्ड क्या है?
सुपर एक ऐसा कीवर्ड है जिसका उपयोग सुपरक्लास के ओवरराइड किए गए तरीकों को लागू करने के साथ-साथ सुपरक्लास के छिपे हुए क्षेत्रों को संदर्भित करने के लिए किया जा सकता है।सुपर कीवर्ड का उपयोग क्यों और कब करें?
जावा सुपर कीवर्ड के तीन स्पष्ट उपयोग हैं।- पैरेंट क्लास के डेटा सदस्यों तक पहुँचें जब चाइल्ड क्लास में भी समान नाम वाले डेटा सदस्य हों।
- चाइल्ड क्लास में पैरेंट क्लास के डिफॉल्ट या पैरामीटराइज्ड कंस्ट्रक्टर्स को कॉल करें ।
- यदि बच्चे के ओवरराइड किए गए तरीके हैं, तो चाइल्ड क्लास में पैरेंट क्लास के तरीकों को कॉल करें ।
उदाहरण 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 - चाइल्ड क्लास में पेरेंट कंस्ट्रक्टर्स को एक्सेस करें
स्पष्ट रूप से कॉल करने से सुपर () आपको चाइल्ड क्लास में पैरेंट क्लास के डिफॉल्ट या पैरामीटराइज्ड कंस्ट्रक्टर दोनों को एक्सेस करने की अनुमति देता है। यहाँ पैरामिट्रीकृत कंस्ट्रक्टर का एक उदाहरण दिया गया है। पैरेंट यानी शेप क्लास के कंस्ट्रक्टर को एट्रीब्यूट्स सेट करने के लिए चाइल्ड यानी ट्रायंगल क्लास में ( सुपर() का इस्तेमाल करके) कहा जाता है। अपने लिए आउटपुट का परीक्षण करने के लिए नीचे दिया गया प्रोग्राम चलाएँ।
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);
}
}
उत्पादन
आकार () पैरामीटरयुक्त कन्स्ट्रक्टर कहा जाता है! Triangle() पैरामिट्रीकृत कंस्ट्रक्टर कहा जाता है! त्रिकोण अल्फा पीला
त्वरित चुनौती : अपने सीखने का परीक्षण करने के लिए डिफ़ॉल्ट कंस्ट्रक्टर का उपयोग करके उपरोक्त प्रोग्राम को फिर से डिज़ाइन करें। साथ ही, देखें कि सुपर() सुपर (तर्क) से अलग कैसे है ।
उदाहरण 3 - चाइल्ड क्लास में पैरेंट के ओवरराइड मेथड को एक्सेस करें
उदाहरण 3 दिखाता है कि आप पैरेंट क्लास के उन तरीकों तक कैसे पहुँच सकते हैं जिन्हें चाइल्ड क्लास भी परिभाषित करता है। नीचे दिए गए प्रोग्राम में पैरेंट क्लास साउंड एक मेथड वॉयस () को परिभाषित करता है । चाइल्ड क्लास ड्रम में भी इसी नाम से एक मेथड है यानी वॉइस () । इसका मतलब है कि उपवर्ग द्वारा विधि की आवाज को ओवरराइड किया गया है। बाल वर्ग में मूल वर्ग के तरीकों का उपयोग करने के लिए सुपर कीवर्ड कैसे आवश्यक है, यह जानने के लिए नीचे दिए गए प्रोग्राम को चलाएं ।
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();
}
}
उत्पादन
आकार () पैरामीटरयुक्त कन्स्ट्रक्टर कहा जाता है! Triangle() पैरामिट्रीकृत कंस्ट्रक्टर कहा जाता है! त्रिकोण अल्फा पीला
GO TO FULL VERSION