次のコードがあります
public class Employee {
private String name;
private String gender;
private int age;
final String DEFAULT_GENDER = "male";
final int DEFAULT_AGE = 18;
public Employee(String name,String gender,int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public Employee(String name) {
this(name,DEFAULT_GENDER,DEFAULT_AGE);
}
}
次のエラーが表示されます
Cannot reference Employee.DEFAULT_GENDER before supertype constructor has been called
なぜそれが言っているのかわかりませんEmployee.DEFAULT_GENDER
か?私はそれを静的と定義していません!3つのパラメーターでコンストラクターを呼び出すことができないのはなぜですか? いくつかのデフォルト値を確保するためにDEFAULT_GENDER
とを定義しました。DEFAULT_AGE
Employee オブジェクトを作成するために必要なのは、彼の名前だけです (その場合、性別と年齢はデフォルトに設定されています。また、デフォルトのコンストラクタは許可されていません)。なぜこれが起こっているのかについての意見はありますか?