コンストラクタの引数の構成を変えると同じコンストラクタ名を使えます。これをオーバーロードと呼びます。メソッドもオーバーロード可です。
以下のコードには特に意味はありません。単にコンパイルエラーの有無を検証しただけです。
class Employee {
int id; String name;
Employee() { System.out.println("Employee()エラーなし"); }
Employee(String name) { System.out.println("Employee(String name)エラーなし"); }
Employee(int id) { System.out.println("Employee(int id)エラーなし"); }
Employee(int id, String name) {
System.out.println("Employee(int id, String name)エラーなし"); }
Employee(int id, String country) {
System.out.println("Employee(int id, String country)エラーなし"); }
}
public class Main {
public static void main(String[] args) {
Employee a = new Employee();
Employee b = new Employee("sato");
Employee c = new Employee(100);
Employee d = new Employee(100, "sato");
}
}
--------------------------------------------------
出力
--------------------------------------------------
Main.java:8: エラー: コンストラクタ Employee(int,String)はすでにクラス Employeeで定義されています
Employee(int id, String country) {