2011-12-15 20 views
1

私は、無用なクラスのプロジェクトのための2つのクラスの作成に取り組んでいます。クラスは従業員と医師であり、医師は従業員を引き継いでいます。かなりシンプルだよね?私もそう思いました。クラスを拡張する際のエラー

ここでは(ヘッダを除く)従業員のための私のコードです:ここで

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クラスのコンストラクタは指定された型には適用できません;必須:java.lang.Stringが見つかりました:引数なし理由:引数リストは長さが異なります。 "

私はおそらくここで何か間違っていると知っていますが、私はそれが何であるか分かりません。再び、私はBlueJを使用している可能性があります。私はcmdで他のIDEとコンパイルしようとしていません...まだ...私が間違っていることについてのアイデア?

答えて

4

Doctorコンストラクタにsuper(n);を追加する必要があります。

Javaでは、コンストラクタは自動的にそのように連鎖されません。 Doctorコンストラクタに到達する前に、Doctorコンストラクタの最初の文がsuper()の呼び出しでない限り、基本クラスのパラメータのないコンストラクタが検索されます。

関連する問題