扩展类时出错

时间:2011-12-15 01:33:39

标签: java constructor extends

我正在为一类无用的类项目创建两个类。这些类是Employee和Doctor,Doctor扩展了Employee。看起来很简单吧?我也是这么想的。

这是我的员工代码(不包括标题):

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:没有参数原因:实际和正式参数列表的长度不同“。

我知道我可能在这里做错了,但我不知道它是什么。再一次,可能就是我正在使用BlueJ;我还没有尝试使用cmd的任何其他IDE编译它......但是......有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:4)

您需要向Doctor构造函数添加super(n);

在Java中,构造函数不会自动链接。在它到达你的Doctor构造函数之前,它会查找基类的无参数构造函数,除非你的Doctor构造函数中的第一个语句是对super()的调用。