2011-12-15 137 views
1

我正在爲一類無用的類項目創建兩個類。這些課程是員工和醫生,醫生擴展員工。似乎很簡單,對吧?我也是這麼想。擴展類錯誤

這裏是我的員工(不包括標題)代碼:

public class Employee { 
    protected String name; 

    public Employee(String n) { 
     name = n; 
    } 
} 

這裏是我的醫生代碼(不包括標題):

public class Doctor extends Employee { 
    protected String school; 

    public Doctor(String n, String s) { 
     name = n; 
     school = s; 
    } 
} 

應該工作,對不對?唉,當我嘗試編譯Doctor類(Employee類編譯好)時,BlueJ表示「Employee類中的構造函數Employee不能應用於給定類型;必需:java.lang.String found:無參數reason:實際和正式參數列表的長度不同「。

我知道我可能在這裏做錯了什麼,但我不知道它是什麼。同樣,我可能只是在使用BlueJ;我還沒有嘗試使用cmd編譯它的任何其他IDE ......但是......我在做什麼錯誤的任何想法?

回答

4

您需要在您的Doctor構造函數中添加super(n);

在Java中,構造函數不會像這樣自動鏈接。在它到達Doctor構造函數之前,它會查找基類的無參數構造函數,除非Doctor構造函數中的第一條語句是對super()的調用。