In this example, we will learn how we can call one constructor from another constructor in Java.
Example 1: Java program to call one constructor from another
class Main { int sum; // first constructor Main() { // calling the second constructor this(5, 2); } // second constructor Main(int arg1, int arg2) { // add two value this.sum = arg1 + arg2; } void display() { System.out.println("Sum is: " + sum); } // main class public static void main(String[] args) { // call the first constructor Main obj = new Main(); // call display method obj.display(); } }
Output
Sum is: 7
In the above example, we have created a class named Main. Here, you have created two constructors inside the Main class.
Main() {..}
Main(int arg1, int arg2) {...}
Inside the first constructor, we have used this
keyword to call the second constructor.
this(5, 2);
Here, the second constructor is called from the first constructor by passing arguments 5 and 2.
Note: The line inside a constructor that calls another constructor should be the first line of the constructor. That is, this(5, 2)
should be the first line of Main()
.
Example 2: Call the constructor of the superclass from the constructor of the child class
We can also call the constructor of the superclass from the constructor of child class using super()
.
// superclass class Languages { // constructor of the superclass Languages(int version1, int version2) { if (version1 > version2) { System.out.println("The latest version is: " + version1); } else { System.out.println("The latest version is: " + version2); } } } // child class class Main extends Languages { // constructor of the child class Main() { // calling the constructor of super class super(11, 8); } // main method public static void main(String[] args) { // call the first constructor Main obj = new Main(); } }
Output
The latest version is: 11
In the above example, we have created a superclass named Languages and a subclass Main. Inside the constructor of the Main class, notice the line,
super(11, 8);
Here, we are calling the constructor of the superclass (i.e. Languages(int version1, int version2)
) from the constructor of the subclass (Main()
).