Super at constructor level
The super keyword can also be used to invoke or call the parent class constructor. Constructor
are calling from bottom to top and executing from top to bottom.
To establish the connection between base class constructor and derived class constructors JVM
provides two implicit methods they are:
Super()
Super(...)
Super()
Super() It is used for calling super class default constructor from the context of derived class
constructors.
Super keyword used to call base class constructor
Syntax
class Employee
{
Employee()
{
System.out.println("Employee class Constructor");
}
}
class HR extends Employee
{
HR()
{
super(); //will invoke or call parent class constructor
System.out.println("HR class Constructor");
}
}
class Supercons
{
public static void main(String[] args)
{
HR obj=new HR();
}
}
Output
Employee class Constructor
HR class Constructor
Note: super() is added in each class constructor automatically by compiler.
In constructor, default constructor is provided by compiler automatically but it also
adds super()before the first statement of constructor.If you are creating your own constructor and
you do not have either this() or super() as the first statement, compiler will provide super() as the
first statement of the constructor.
Super(...)
Super(...) It is used for calling super class parameterize constructor from the context of derived
class constructor.
Important rules
Whenever we are using either super() or super(...) in the derived class constructors
the superalways must be as a first executable statement in the body of derived class constructor
otherwise we get a compile time error.
The following diagram use possibilities of using super() and super(........)