所以我想弄清楚继承是如何工作的。我制作了一个叫做“男人”的基本课程。和一个名为“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'
}
}
感谢您的时间:)
答案 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 }