116、接口(Interface)定义与实现
2026/8/28 11:52:59 网站建设 项目流程

116、接口(Interface)定义与实现 接口(Interface)定义与实现

前一阵子调试一个采购订单增强,供应商主数据同步的报表老是有几条记录过不去,Log里报的错是“Methode oder Attribut nicht gefunden”,一看就是调用了一个不存在的组件。我翻代码,发现开发同事在类里直接调用了另一个类的实例方法,两个类之间没有任何关系,就靠一个全局变量硬撑。运行时偶尔好使,偶尔崩,全看内存里那个对象什么时候被GC盯上。当时我就想,这要是早用接口定义好契约,哪来这么多幺蛾子。ABAP里Interface这玩意儿,不是给编译器看的,是给别人看的——尤其是给三个月后的你自己看。

接口在ABAP里就是一组方法和属性的声明,没有实现体。你可以把它理解成一份合同,谁想签这份合同,谁就得把里面的条款实现掉。类可以签多份合同,接口可以继承接口,但类只能继承一个父类。这个设计跟Java很像,但ABAP的接口有自己的脾气,尤其是它的成员命名和实现方式,踩过坑的人都知道。

先看接口怎么定义。SE24里创建,对象类型选“Interface”,名字随便起个ZIF_开头,比如ZIF_ORDER_VALIDATOR。里面定义方法:

INTERFACE zif_order_validator PUBLIC. METHODS: validate_order IMPORTING iv_order_id TYPE vbeln VALUE(ev_valid) TYPE abap_bool, get_messages RETURNING VALUE(r

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询