java - 如何在仍然调用超类方法的同时向覆盖的子类方法添加额外的实现
问题描述
我想在不完全覆盖超类方法的情况下向覆盖子类方法添加额外的实现。这是我到目前为止所做的,但它似乎不起作用。我希望输出是“超类返回”,然后是“子类返回”。这是代码:
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
解决方案
您丢失了 supersend()
方法的返回值,这就是您在输出中看不到它的原因。为了能够同时看到两者,您需要将子实现修改为如下所示:
public String send() {
String value = super.send();
return value + "subclass return";
}
推荐阅读
- javascript - 如何编写突变响应检查
- r - 将点过程转换为类图像并再次返回同一点过程
- javascript - 将请求库导入 node.js 上的 AWS Lambda
- amazon-web-services - AWS Athena 查询已移至 Glacier 的混合 JSON 对象
- c - 取消引用指向不完整类型“结构名称”的指针
- azure-functions - Azure Function - 应用服务计划 - 安装 git 包
- date - Conditional formatting with date in formula
- docker - Rocket Chat docker-compose.yml not validating
- google-apps-script - 更新谷歌脚本以清除特定范围的单元格
- python - 如何在 CAD 绘图中找到有界区域的数量?