i. Number of parameters
ii. Type of parameters
When there are two or more constructors, definitely with the same name, in a given class, then the constructors are said to be overloaded. An overloaded constructor appears declared many times in a class but each time with different number of parameters and/or type of parameters.
For example, given a class Test, the following combination of constructors can exist;
i. public Test(int x){
}
ii. public Test(String m){
}
iii. public Test(int a, String b){
}
The following should be noted;
In the case of combination (i) and (ii), the constructors have the same number of parameters but different type of parameter. In other words, they both have 1 parameter but while the first one has a parameter type of int, the second has a parameter type of String.
In the case of combination (ii) and (iii), the constructors have different number of parameters and of course different type of parameters. In other words, the second constructor has 1 parameter of type String while the third constructor has 2 parameters of types int and String.