super keyword
In Java, super is a reference variable that refers to the immediate parent class. An instance of the superclass will get created implicitly whenever we create an instance of its subclass. You can then inherit the superclass and can access the data members of the superclass using the super keyword.
Super keyword usage-
- It will allow you to refer to the immediate parent class instance variable .
- It will allow you to invoke the immediate parent class method.
- It will allow you to invoke the immediate parent constructor.
Referring to the parent’s class instance variable
This keyword will allow solving the ambiguity when the superclass and the subclass both have the same data member. You can access the data member or the fields of the superclass using the super keyword.
Example-
Output-
In the above example, both the classes have the same data member as color. By default, the value of the current class data member will get displayed but if you want to display the value of the parent class then the super keyword will be used.
Invoking parent’s class method
You can invoke the parents class method using the super keyword. It is used in the case that both the parent class and the child class have the method of the same name. It means if the method is overridden you can access the parent’s class method using super keyword.
Example-
Output-
Invoking parent’s class constructor
You can invoke the parent’s class constructor using the super keyword.
Example-
Output-
Super is implemented by the compiler explicitly
The super keyword is added by the compiler automatically while creating the instance of the child class. First, the parent’s class constructor will get invoked then the child class constructor will get executed.
Example-
class Animal{
Animal(){System.out.println("animal class");}
}
class Dog extends Animal{
Dog(){
System.out.println("dog class");
}
}
class Demo{
public static void main(String args[]){
Dog d=new Dog();
}
}
Output-