当前位置: 首页 > news >正文

在 wrapper 类里实现重载方法

现有包装类 Wrapper 欲覆盖 inner 的方法 g

class A{void f(){g();}void g(){}
}class Wrapper extends A{A inner;void f(){inner.f()	// 不调用 Wrapper.g}void g(){	// override g}
}

inner 通过 this.g 调用时仍然会调用 A.g 而不是 Wrapper.g 导致覆盖失效。

现在想到一个好办法, 我将 f 改为 f(A self):

class A{void f(A a){a.g();}void g(){}
}class Wrapper extends A{A inner;void f(A a){inner.f(this)	// 不调用 Wrapper.g}void g(){	// override g}
}

为了让 A 原来的用户舒服:

class A{void f(){this.f(this);}
}
http://www.rkmt.cn/news/25599.html

相关文章:

  • Vue 项目 AI 文档增量更新工具操作手册
  • P7521 [省选联考 2021 B 卷] 取模 分析
  • 实用指南:socketpair深度解析:Linux中的“对讲机“创建器
  • 嵌入式硬件——基于IMX6ULL的UART(通用异步收发传输器) - 教程
  • CSP-S 模拟赛 Day 19
  • CSP-S 模拟赛 Day 18
  • 2025年市面上高杆灯品牌与国内公司口碑产品推荐榜单
  • 2025年锥芯板品牌口碑排行榜单Top10:行业精选与选择指南
  • Boost 搜索引擎 - 实践
  • P11233 [CSP-S 2024] 染色题解
  • hive udaf 输入输出处理参考手册 - 指南
  • 位运算(早晚得学会)
  • 深入解析:【C++】继承
  • 20231427田泽航第五周预习报告
  • 利用错误配置的postMessage()函数实现DOM型XSS攻击
  • 机器学习领导者分享AI技术与行业洞见
  • el-upload上传配合$confirm使用的问题
  • 10.20 CSP-S模拟35 改题记录
  • 例子:vue3+vite+router创建导航菜单
  • LGR-246 解题报告
  • (薛定谔のCSP-S)模拟35 2025.10.20
  • CSP-S模拟36
  • 追忆
  • 2025年西服定制厂家权威推荐榜:婚纱/结婚/职业/团体/职场/礼服/工作服/公务员西服定制,专业工艺与个性化服务深度解析
  • luogu P14259 兄妹(siblings)
  • 2025年化工原料厂家推荐排行榜:双氧水/片碱/盐酸/磷酸/PAC/聚丙烯酰胺/消泡剂/阻垢剂等工业级化学品优质供应商
  • 10月20日
  • 结对项目--小学四则运算题目生成器
  • 阿里云智能语音简单使用:语音识别
  • 计数