• ABAP接口用法


    1、定义接口
    INTERFACE intf [PUBLIC].
      [components]
    ENDINTERFACE.

    2、注意点:

    2.1、接口中所定义的所有东西默认都是公共的,所以不用也不能写PUBLIC SECTION。

    2.2、只有在接口中定义的常量(CONSTANTS)才可以使用 VALUE 选项来初始化,而DATA、CLASS-DATA定义的变量是不能初始化

    2.3、接口定义中也只能包含成员声明部分,而具体的实现将在具体类中进行

    2.4、如果要实现某个接口,则在类的公共声明PUBLIC SECTION部分进行实现,其余部分不行

    3、定义一个接口 MediaPlayer,表示家庭影院的一个设备。MediaPlayer 中包含 play(),stop(), open()三个方法,分别表示播放、停止和开仓功能。
    MediaPlayer 有三个实现类,分别为: DVDPlayer,表示 DVD 播放器; CDPlayer,表示 CD 播放器;TapePlayer,表示录音机(播放磁带)。

    INTERFACE mediaplayer.
      CONSTANTS pi TYPE f VALUE '3.1415926'.
      CLASS-DATA dd type f .
      METHODS: play,stop,open.
    ENDINTERFACE.
    
    CLASS dvdplayer DEFINITION.
      PUBLIC SECTION.
        INTERFACES mediaplayer.
    ENDCLASS.
    
    CLASS dvdplayer IMPLEMENTATION.
       METHOD mediaplayer~play.
          WRITE / 'dvd is play'.
       ENDMETHOD.
       METHOD mediaplayer~stop.
          WRITE / 'dvd is stop'.
       ENDMETHOD.
       METHOD mediaplayer~open.
          WRITE / 'dvd is open'.
       ENDMETHOD.
    ENDCLASS.
    
    CLASS cdplayer DEFINITION.
      PUBLIC SECTION.
        INTERFACES mediaplayer.
    ENDCLASS.
    CLASS cdplayer IMPLEMENTATION.
       METHOD mediaplayer~play.
          WRITE / 'cd is play'.
       ENDMETHOD.
       METHOD mediaplayer~stop.
          WRITE / 'cd is stop'.
       ENDMETHOD.
       METHOD mediaplayer~open.
          WRITE / 'cd is open'.
       ENDMETHOD.
    ENDCLASS.
    
    CLASS tapeplayer DEFINITION.
      PUBLIC SECTION.
        INTERFACES mediaplayer.
    ENDCLASS.
    CLASS tapeplayer IMPLEMENTATION.
       METHOD mediaplayer~play.
          WRITE / 'tape is play'.
       ENDMETHOD.
       METHOD mediaplayer~stop.
          WRITE / 'tape is stop'.
       ENDMETHOD.
       METHOD mediaplayer~open.
          WRITE / 'tape is open'.
       ENDMETHOD.
    ENDCLASS.
    
    *声明对象
    DATA: dvd TYPE REF TO dvdplayer,
          cd TYPE REF TO cdplayer,
          tape TYPE REF TO tapeplayer.
    
    
    START-OF-SELECTION.
    
    CREATE OBJECT dvd.
    CREATE OBJECT cd.
    CREATE OBJECT tape.
    
    CALL METHOD dvd->mediaplayer~play.
    
    CALL METHOD cd->mediaplayer~stop.
    
    CALL METHOD tape->mediaplayer~open.
    
    write / dvd->mediaplayer~pi.
    write / dvd->mediaplayer~dd.
    
    dvd->mediaplayer~dd = 1.
    
    write / dvd->mediaplayer~dd.
  • 相关阅读:
    Docker 私有仓库搭建
    事务提交与不同数据库的自增方式
    多环境切换&&注解方式&&增删改返回值问题
    查询缓存&&逆向工程
    Mybatis整合Log4j、延迟加载
    关联查询
    MyBatis实现动态SQL
    输出参数resultType
    MyBatis调用存储过程执行CRUD
    两种取值符号的异同
  • 原文地址:https://www.cnblogs.com/miaosj/p/10338614.html
Copyright © 2020-2023  润新知