news 2026/8/28 11:53:03

115、继承与多重继承(ABAP的替代关系)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
115、继承与多重继承(ABAP的替代关系)

115、继承与多重继承(ABAP的替代关系)

调试一个诡异问题时我差点掀了办公桌:子类里明明重写了父类方法,程序却依然走的是旧逻辑。断点打上去,Eclipse连个反应都不给,函数出栈后数据照旧。最后发现压根不是方法调用的问题,而是我把一个内表类型定义在了子类的私有区,父类里有个方法拿同样的结构名去定义行类型,两套体系从源头就分叉了。那会儿才真正意识到,ABAP里的“继承”不是C++那种天然多态,它更像一场有严格规矩的认亲仪式——你想让后代认祖归宗,先得把血脉里的每个零件都按官方家谱来配。

很多人一上来就把ABAP的继承跟Java或C++的继承画等号,结果写出来的代码像个四不像。ABAP的类继承是单继承,每个类最多只能有一个直接父类。这个约束本身不痛苦,痛苦的是你总想在一个类里塞进两个“父亲”的功能——比如一边想要报表展示的接口,一边又想要标准ALV容器的行为。第一反应是“两个类我都继承”,不好意思,语法检查直接给你红叉。这时候你得换脑子:ABAP有替代方案,叫接口,或者叫组合。

先看继承的基本盘。父类里定义的方法和属性,子类可以通过INHERITING FROM拿到,然后子类里重写方法用REDEFINITION。注意不是override,也别在REDEFINITION后乱加SUPER调用的次数,这地方我吃过亏。看代码:

CLASS zcl_parent DEFINITION PUBLIC. PUBLIC SECTION. METHODS: get_
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 11:50:09

STM32WB实战:Zigbee 3.0开发环境搭建与组网避坑指南

前几天看到ST的官网更新,STM32无线MCU的官方固件正式把Zigbee 3.0协议栈纳入支持范围。说句实话,这个动作对做智能家居、传感网络、工业无线采集的人来说,是个挺实在的好消息。以前想在STM32上跑Zigbee,要么用外挂透传模块&#x…

作者头像 李华
网站建设 2026/8/28 11:46:06

C++异常处理:从RAII到异常安全,构建健壮程序的工程实践

1. 从“崩溃”到“优雅”:为什么C异常处理是程序员的必修课 干了这么多年C,我见过太多因为一个文件打开失败、一个内存分配错误,或者一个简单的除零操作,就导致整个程序直接崩溃退出的情况。用户看着黑屏或者一个冷冰冰的“程序已…

作者头像 李华
网站建设 2026/8/28 11:46:00

TOPSIS优劣解距离法:从原理到实战的多属性决策指南

1. 从“选谁最好”到“谁离理想最近”:TOPSIS法的核心思想 做决策,尤其是那种需要从一堆选项里挑出一个“最优”的,是件挺让人头疼的事。比如,公司要采购一批服务器,有A、B、C、D四个供应商的方案,每个方案…

作者头像 李华
网站建设 2026/8/28 11:41:45

Sunshine 游戏串流服务器:从安装到首次串流的免费完整教程

Sunshine 游戏串流服务器:从安装到首次串流的免费完整教程 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 周末刚过半,你想用手柄接着打书房电脑上的 3A 大…

作者头像 李华
网站建设 2026/8/28 11:38:41

低功耗IoT人体检测:PIR+毫米波雷达联合方案解析

最近圈子里有个挺典型的联合项目:几家不同赛道的公司凑在一起,要做一款电池供电的低功耗IoT人体检测设备。项目标题是“Firms Team for Low Power IoT Person Detection”,听起来不算多复杂,但真正跑起来你会发现,这个…

作者头像 李华