ABAP接口用法

Posted miaosj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.

 





以上是关于ABAP接口用法的主要内容,如果未能解决你的问题,请参考以下文章

ABAP中Collect的用法

通过接口标准化ABAP OO开发

ABAP系列SAP ABAP DYNP_VALUES_UPDATE 更新屏幕字段的函数及用法

ABAP range 用法

关於在ABAP中的SELECT语句的一种用法的请教。

ABAP VALUE用法