我想在不完全重写超类的情况下向重写的子类方法添加其他实现。到目前为止,这是我要做的,但是似乎不起作用。我希望输出是“超类返回”,然后是“子类返回”。这是代码:
public class A {
public String send() {
return "superclass return";
}
}
public class B extends A{
public String send() {
super.send();
return "subclass return";
}
}
public class Driver {
public static void main(String[] args) {
B b = new B();
System.out.println(b.send());
}
}
输出:subclass return
我使用了错误的语法super.send()
吗?预期的输出应为:
superclass return
subclass return
答案 0 :(得分:2)
您丢失了超级send()
方法的返回值,这就是为什么您无法在输出中看到它的原因。为了能够看到两者,您需要将子实现修改为类似以下内容:
public String send() {
String value = super.send();
return value + "subclass return";
}
答案 1 :(得分:0)
您没有对超类的返回值做任何事情。试试这个:
public class A {
public String send() {
return "superclass return";
}
}
public class B extends A{
public String send() {
return super.send() + "subclass return";
}
}
public class Driver {
public static void main(String[] args) {
B b = new B();
System.out.println(b.send());
}
}
或者如果您想换行:
return super.send() + "\nsubclass return";