我不能成为超级构造函数

时间:2016-03-20 14:40:26

标签: java

我有一个人类 Human.java

我也有一个教师班

Teacher.java

但我无法将超级构造函数添加到我的Retired_teacher

public class Retired_teacher extends Teacher{

 public int retirement_year;

 Retired_teacher(Teacher t, int ry_){

     super Teacher(name,surname,age,gender);  
     String na=get_name();
    System.out.println("A new teacher " + na + " " + surname + "is constructed");
    System.out.println("A teacher is retired");
    retirement_year=ry_;

超级正在犯错误如何解决这个问题

2 个答案:

答案 0 :(得分:1)

您正在呼叫super错误,您应该致电:

super(name,surname,age,gender);  

无需课程名称。

同样在你的Teacher课程中,构造函数正在使用 5 参数,而这里只提供 4 。所以请记住,除非你添加另一个参数,否则这不会起作用。

答案 1 :(得分:0)

您定义了一个Teacher类及其构造函数。

Teacher(String na_,String sur_,int a,String g_,String le_);  

但你在做:

super Teacher(name,surname,age,gender);  

并且没有在该类中定义这样的构造函数...

所以你需要重载构造函数并创建

Teacher(String na_,String sur_,int a,String g_);  

或彻底传递args。

PS :在我的意见中,Retired_teacher是教师,但boolean成员设置为false(有效或无效),

为成员的变化创建一个新类可能太多了。