为什么我的退货类型错了?

时间:2014-05-20 11:01:32

标签: java netbeans return-type

所以我想弄清楚继承是如何工作的。我制作了一个叫做“男人”的基本课程。和一个名为“Leerkracht”的子类。 男士有一种称为“香椿”的方法。 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) {

}

Leerkracht班:

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'

}

}

感谢您的时间:)

2 个答案:

答案 0 :(得分:4)

System.out.println("dit is een leerkracht"+ super.toon());

由于超类中的toon()方法没有返回任何内容(返回类型为void),因此无法在SOP(print语句)中提供它。因为SOP(print语句)需要该方法返回一个值,该值将连接并打印在系统控制台上。

toon()类中的Mens方法无论如何都有SOP(打印语句),因此您可以执行以下操作来打印内容。

@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();
}

答案 1 :(得分:3)

您使用toon()调用超类的方法super.toon()

由于toon()是一种空方法,因此它不会返回任何内容。删除它,您的代码应如下所示:

@Override
public void toon(){
    System.out.println("dit is een leerkracht");
// no error anymore

}