You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ABAP中Importing/Exporting参数与继承概念是否相似?

ABAP中Importing/Exporting/Changing参数详解与继承概念的区分

一、三个参数的核心概念

这些关键字是ABAP里定义方法数据流向的规则,用来明确方法和调用方之间数据的传入、传出逻辑,避免歧义:

Importing 参数

  • 本质:调用方给方法传输入数据,方法内部只能读取这个值,语义上不允许修改原始传入的变量(引用类型例外,但核心是“输入”)。
  • 场景:比如计算折扣价的方法,需要调用方传入原价,这个原价就是Importing参数。

Exporting 参数

  • 本质:方法给调用方返回结果数据,方法执行完后把计算好的值传递回调用方的变量。
  • 场景:上面例子里计算出来的折扣价,就是Exporting参数。

Changing 参数

  • 本质:兼具输入和输出,调用方传一个变量进来,方法可以修改它的值,修改后的结果会直接回传给调用方的原变量。
  • 场景:比如给库存数量减1的方法,传入的库存数既是输入(当前数量)也是输出(更新后的数量)。

代码示例

CLASS lcl_product DEFINITION.
  PUBLIC SECTION.
    METHODS calculate_discount
      IMPORTING iv_original_price TYPE i
      EXPORTING iv_discounted_price TYPE i.
    METHODS reduce_stock
      CHANGING cv_stock_qty TYPE i.
ENDCLASS.

CLASS lcl_product IMPLEMENTATION.
  METHOD calculate_discount.
    iv_discounted_price = iv_original_price * 0.8. " 打8折
  ENDMETHOD.

  METHOD reduce_stock.
    cv_stock_qty = cv_stock_qty - 1.
  ENDMETHOD.
ENDCLASS.

" 调用示例
DATA(lo_product) = NEW lcl_product( ).
DATA(lv_original) = 200.
DATA(lv_discounted) = 0.
DATA(lv_stock) = 10.

lo_product->calculate_discount( EXPORTING iv_original_price = lv_original 
                                IMPORTING iv_discounted_price = lv_discounted ).
WRITE: / '折扣价:', lv_discounted. " 输出160

lo_product->reduce_stock( CHANGING cv_stock_qty = lv_stock ).
WRITE: / '更新后库存:', lv_stock. " 输出9

二、和类继承的本质区别

你提到的“用Exporting把方法A的参数传给方法B”完全不属于继承,两者是风马牛不相及的概念:

  1. 作用场景完全不同

    • 参数传递(Importing/Exporting/Changing):是单次方法调用时的临时数据交互,调用结束后,两个方法之间就没有任何数据关联了。
    • 继承:是类定义层面的结构复用,子类继承父类的属性、方法,这种关系是长期存在的,和单次方法调用无关。
  2. 关系主体不同

    • 参数传递是两个方法(或调用方与方法)之间的临时交互,哪怕是完全无关的两个类的方法,只要参数匹配就能传参。
    • 继承是子类与父类之间的层级关系,子类必须明确声明继承自某个父类,才能使用父类的非私有成员。
  3. 数据归属不同

    • 用Exporting传参给B,只是把A里的某个变量值复制或引用传递给B的参数,B并没有“拥有”A的参数,只是临时使用这个值而已。
    • 继承是子类直接获得父类的成员所有权,这些成员属于子类本身的一部分,子类的任何方法都能直接使用,不需要每次调用都传参。

举个生活化的例子:

  • 参数传递:你点外卖时给商家发地址(Importing),商家给你送外卖(Exporting),交易结束后你们就没关联了。
  • 继承:你继承了家里的店铺,这个店铺从此就是你的资产,你随时可以经营,不需要每次开门都跟家人申请拿钥匙。

内容的提问来源于stack exchange,提问作者Whatever M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:29:57