Java Language
सुपर कीवर्ड
खोज…
सुपर कीवर्ड उदाहरण के साथ उपयोग करते हैं
सुपर कीवर्ड तीन स्थानों पर महत्वपूर्ण भूमिका निभाता है
- कंस्ट्रक्टर का स्तर
- विधि का स्तर
- परिवर्तनीय स्तर
कंस्ट्रक्टर का स्तर
super
कीवर्ड का उपयोग पैरेंट क्लास कंस्ट्रक्टर को कॉल करने के लिए किया जाता है। यह कंस्ट्रक्टर डिफॉल्ट कंस्ट्रक्टर या पैरामीटराइज्ड कंस्ट्रक्टर हो सकता है।
डिफ़ॉल्ट निर्माता:
super();
परिमार्जित कंस्ट्रक्टर:
super(int no, double amount, String name);
class Parentclass { Parentclass(){ System.out.println("Constructor of Superclass"); } } class Subclass extends Parentclass { Subclass(){ /* Compile adds super() here at the first line * of this constructor implicitly */ System.out.println("Constructor of Subclass"); } Subclass(int n1){ /* Compile adds super() here at the first line * of this constructor implicitly */ System.out.println("Constructor with arg"); } void display(){ System.out.println("Hello"); } public static void main(String args[]){ // Creating object using default constructor Subclass obj= new Subclass(); //Calling sub class method obj.display(); //Creating object 2 using arg constructor Subclass obj2= new Subclass(10); obj2.display(); } }
नोट : super()
कंस्ट्रक्टर में पहला कथन होना चाहिए अन्यथा हमें संकलन त्रुटि संदेश मिलेगा।
विधि का स्तर
super
कीवर्ड का उपयोग विधि ओवरराइडिंग के मामले में भी किया जा सकता है। super
कीवर्ड का उपयोग मूल वर्ग विधि को लागू करने या कॉल करने के लिए किया जा सकता है।
class Parentclass
{
//Overridden method
void display(){
System.out.println("Parent class method");
}
}
class Subclass extends Parentclass
{
//Overriding method
void display(){
System.out.println("Child class method");
}
void printMsg(){
//This would call Overriding method
display();
//This would call Overridden method
super.display();
}
public static void main(String args[]){
Subclass obj= new Subclass();
obj.printMsg();
}
}
नोट : यदि कोई तरीका ओवरराइडिंग नहीं है तो हमें पैरेंट क्लास विधि को कॉल करने के लिए super
कीवर्ड का उपयोग करने की आवश्यकता नहीं है।
परिवर्तनीय स्तर
super
का उपयोग तत्काल पैरेंट क्लास उदाहरण चर को संदर्भित करने के लिए किया जाता है। उत्तराधिकार के मामले में, बेस क्लास की संभावना हो सकती है और व्युत्पन्न वर्ग में समान डेटा सदस्य हो सकते हैं। बेस क्लास के डेटा के आधार के आधार पर आधार / माता-पिता वर्ग और व्युत्पन्न / बच्चे वर्ग के डेटा सदस्य के बीच अंतर करने के लिए। सदस्यों को super
कीवर्ड से पहले होना चाहिए।
//Parent class or Superclass
class Parentclass
{
int num=100;
}
//Child class or subclass
class Subclass extends Parentclass
{
/* I am declaring the same variable
* num in child class too.
*/
int num=110;
void printNumber(){
System.out.println(num); //It will print value 110
System.out.println(super.num); //It will print value 100
}
public static void main(String args[]){
Subclass obj= new Subclass();
obj.printNumber();
}
}
नोट : यदि हम आधार वर्ग डेटा सदस्य नाम से पहले super
कीवर्ड नहीं लिख रहे हैं तो इसे वर्तमान वर्ग डेटा सदस्य के रूप में संदर्भित किया जाएगा और बेस क्लास डेटा सदस्य व्युत्पन्न वर्ग के संदर्भ में छिपे हुए हैं।