Java 为什么我的返回类型是错误的?

Java 为什么我的返回类型是错误的?,java,netbeans,return-type,Java,Netbeans,Return Type,所以我想弄清楚继承是如何运作的。我创建了一个名为“Mens”的基本类和一个名为“Leerkracht”的子类。 Mens有一个名为“toon”的方法,ofc由其子类继承。 问题是Netbeans不允许我在子类的继承方法中使用'void'作为返回类型,我完全不知道为什么 男子级别: public class Mens { private String naam; public Mens(String naam){ this.naam=naam; } public void toon(){

所以我想弄清楚继承是如何运作的。我创建了一个名为“Mens”的基本类和一个名为“Leerkracht”的子类。 Mens有一个名为“toon”的方法,ofc由其子类继承。 问题是Netbeans不允许我在子类的继承方法中使用'void'作为返回类型,我完全不知道为什么

男子级别:

public class Mens {
private String naam;

public Mens(String naam){
    this.naam=naam;
}
public void toon(){
    System.out.println(this.naam);
}
public static void main(String[] args) {

}
利尔克拉希特级:

public class Leerkracht extends Mens{

public Leerkracht(String naam) {
    super(naam);
}

@Override
public void toon(){
    System.out.println("dit is een leerkracht"+ super.toon());
// the error is on the line above which states ''void' type not allowed here'

}
}

感谢您抽出时间:

System.out.println("dit is een leerkracht"+ super.toon());
由于super类中的toon方法不返回任何东西,其返回类型为void,因此不能在SOPprint语句中提供它。因为SOPprint语句期望该方法返回一个值,该值将被连接并在系统控制台上打印

Mens类中的toon方法无论如何都有一个SOPprint语句,所以您可以这样做来打印内容

@Override
public void toon(){
    System.out.print("dit is een leerkracht"); // note that I made this to print so that the name which is printed within super.toon() stays in the same line
    super.toon();
}

您正在使用super.toon调用超类的方法toon

因为toon是一个void方法,所以它不返回任何内容。删除它,您的代码应该如下所示:

@Override public void toon(){ System.out.println("dit is een leerkracht"); // no error anymore }
你的班级结构不合适。你们正在执行基本类的Mens,你们在主块中做什么还不清楚。@gyanu他的类结构是正确的。@gyanu:这是不相关的,也没什么问题。下面的答案解释了这个问题:他在print语句中调用super.toon,使用字符串连接,但它不返回任何要连接的内容。好的,我知道了,但在基类上有主函数,我认为他不会很好地利用派生类Leerkracht。