我有以下代碼「不能引用Employee.DEFAULT_GENDER前超構造被稱爲」錯誤
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對象的是他的名字(在這種情況下,性別和年齡被設置爲默認值,也不允許默認構造函數)。任何意見,爲什麼發生這種情況?
會使其靜態解決這個問題?靜態變量在加載類時被初始化。 –
@AniketThakur這個答案是正確的,使他們靜態,他們屬於類,而不是對象+1 – nachokk
非常感謝。這工作,但只是出於好奇,是否有工作,如果我想在對象級別,而不是類級別的默認值? –