The one word answer to this question is "yes!" constructors in java can be overloaded.
Let us see this by a code example:
public class Employee {
private int empId;
private String empName;
private int empAge;
public Employee(int empId) {
this.empId = empId;
}
public Employee(String empName) {
this.empName = empName;
}
public Employee(int empId, String empName, int empAge) {
this.empId = empId;
this.empName = empName;
this.empAge = empAge;
}
public Employee() {
//default constructor
}
public static void main(String[] args) {
//default constructor call
Employee employee = new Employee();
//overloaded constructor calls
Employee employee1 = new Employee(1);
Employee employee2 = new Employee("Sam");
Employee employee3 = new Employee(1,"Sam",22);
}
}
As you may see we have defined multiple constructors, in the above code. Note there are some rules that you should remember, as they may come up as follow-up questions in the interview.
Some Rules to remember:
- Overloaded constructors must have different parameters.
- Each overloaded constructor should have a unique signature.
- If a constructor is defined by you, Java does not provide a default constructor, you have to explicitly add it by yourself.
- The order of constructor definition does not matter.
- Constructors are invoked based on argument types or the number of arguments during object creation.
- Constructors can call other constructors using this() for chaining.
- Constructor overloading is specific to object creation, while method overloading involves multiple methods in a class do not get confused.

Provide Feedback For This Article
We take your feedback seriously and use it to improve our content. Thank you for helping us serve you better!
😊 Thanks for your time, your feedback has been registered!
Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!