我正在为一类无用的类项目创建两个类。这些类是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编译它......但是......有什么想法我做错了吗?
答案 0 :(得分:4)
您需要向Doctor构造函数添加super(n);
。
在Java中,构造函数不会自动链接。在它到达你的Doctor构造函数之前,它会查找基类的无参数构造函数,除非你的Doctor构造函数中的第一个语句是对super()的调用。