In java it is predefined that the ‘super’ word is somewhere related to the parent class. If we need to brief and justify the title in one go then the super keyword in java refers to dealing with parent class object while super() deals with parent class constructor. We will be covering the article first discussing the concept of a super keyword followed by super() later onwards.
Concept: super keyword
The super keyword in java is a reference variable that is used to refer parent class objects. The keyword “super” came into the picture with the concept of Inheritance. Basically this form of super is used to initialize superclass variables when there is no constructor present in superclass. On the other hand, it is generally used to access the specific variable of a superclass.
Example
Tóm Tắt
Java
class
Vehicle {
int
maxSpeed =
120
;
}
class
Car
extends
Vehicle {
int
maxSpeed =
180
;
void
display()
{
System.out.println(
"Maximum Speed: "
+
super
.maxSpeed);
}
}
class
GFG {
public
static
void
main(String[] args)
{
Car small =
new
Car();
small.display();
}
}
Output
Maximum Speed: 120
Now we already have seen that super keyword refers to parent class which can be perceived from the output itself. Now let us dwell onto second concept known as super() which more programmers are lesser aware and do not implement same barely knowing it all
Concept: super()
The super keyword can also be used to access the parent class constructor by adding ‘()’ after it, i.e. super(). Also do remember that ‘super()’ can call both parametric as well as non-parametric constructors depending upon the situation.
Example:
Java
class
Person {
Person()
{
System.out.println(
"Person class Constructor"
);
}
}
class
Student
extends
Person {
Student()
{
super
();
System.out.println(
"Student class Constructor"
);
}
}
class
GFG {
public
static
void
main(String[] args)
{
Student s =
new
Student();
}
}
Output:
Person class Constructor Student class Constructor
Finally after having an adequate understanding of the above topics let us do finally conclude out differences between them which are listed in the tabular format below as follows:
supersuper()The super keyword in Java is a reference variable that is used to refer parent class objects.The super() in Java is a reference variable that is used to refer parent class constructors.super can be used to call parent class’ variables and methods.super() can be used to call parent class’ constructors only.The variables and methods to be called through super keyword can be done at any time,Call to super() must be first statement in Derived(Student) Class constructor.If one does not explicitly invoke a superclass variables or methods, by using super keyword, then nothing happensIf a constructor does not explicitly invoke a superclass constructor by using super(), the Java compiler automatically inserts a call to the no-argument constructor of the superclass.
My Personal Notes
arrow_drop_up