Java Language
super trefwoord
Zoeken…
Super trefwoord gebruik met voorbeelden
super sleutelwoord speelt een belangrijke rol op drie plaatsen
- Constructeursniveau
- Methode niveau
- Variabel niveau
Constructeursniveau
super
sleutelwoord wordt gebruikt om constructeur van bovenliggende klasse aan te roepen. Deze constructor kan standaardconstructor of geparametriseerde constructor zijn.
Standaard constructor:
super();
Geconfigureerde constructor:
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(); } }
Opmerking : super()
moet de eerste instructie in constructor zijn, anders krijgen we het compilatiefoutbericht.
Methode niveau
super
sleutelwoord kan ook worden gebruikt in geval van methode overschrijven. super
sleutelwoord kan worden gebruikt om de methode van de bovenliggende klasse aan te roepen of aan te roepen.
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();
}
}
Opmerking: Als er geen methode dwingende dan hoeven we niet te gebruiken super
sleutelwoord om call bovenliggende klasse methode.
Variabel niveau
super
wordt gebruikt om te verwijzen naar de instantvariabele instantieklasse variabele. In het geval van overerving, kan er een mogelijkheid zijn dat de basisklasse en de afgeleide klasse vergelijkbare gegevensleden hebben. leden moeten worden voorafgegaan door super
superzoekwoord.
//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();
}
}
Let op: Als we schrijven niet super
trefwoord voor de basisklasse data lid naam dan zal worden aangeduid als de huidige klasse data-lid en basisklasse data lid zijn verborgen in het kader van de afgeleide klasse.