A constructor is a special method that is used to initialize an object.Every class has a constructor,if we don't explicitly declare a constructor for any java class the compiler builds a default constructor for that class. A constructor does not have any return type.
A constructor has same name as the class in which it resides. Constructor in Java can not be abstract, static, final or synchronized. These modifiers are not allowed for constructor.
String name ;
Car( ) //Constructor
There are two types of Constructor
- Default Constructor
- Parameterized constructor
Each time a new object is created at least one constructor will be invoked.
Car c = new Car() //Default constructor invoked
Car c = new Car(name); //Parameterized constructor invoked
Like methods, a constructor can also be overloaded. Overloaded constructors are differentiated on the basis of their type of parameters or number of parameters. Constructor overloading is not much different than method overloading. In case of method overloading you have multiple methods with same name but different signature, whereas in Constructor overloading you have multiple constructor with different signature but only difference is that Constructor doesn't have return type in Java.
Q. Why do we Overload constructors ?
Constuctor overloading is done to construct object in different ways.
Example of constructor overloading
Cricketer () //default constructor.
age = 0;
Cricketer(String n, String t, int a) //constructor overloaded
name = n;
team = t;
age = a;
Cricketer (Cricketer ckt) //constructor similar to copy constructor of c++
name = ckt.name;
team = ckt.team;
age = ckt.age;
public String toString()
return "this is " + name + " of "+team;
public static void main (String args)
Cricketer c1 = new Cricketer();
Cricketer c2 = new Cricketer("sachin", "India", 32);
Cricketer c3 = new Cricketer(c2 );
c1.name = "Virat";
c1.age = 32;
System .out. print in (c1);
this is sachin of india
this is sachin of india
this is virat of india
Q What's the difference between constructors and normal methods?
Constructors must have the same name as the class and can not return a value. They are only called once while regular methods could be called many times and it can return a value or can be void.
Q. What is constructor chaining in Java?
Constructor chaining is a phenomena of calling one constructor from another constructor of same class. Since constructor can only be called from another constructor in Java, constructor chaining is used for this purpose.
Q. Does constructors return any value?
Yes, constructors return current instant of a class. But yet constructor signature cannot have any return type.