Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZMENG_INTERFACE
- *&---------------------------------------------------------------------*
- *& sap_abap/sap_abap_interfaces.html
- *&---------------------------------------------------------------------*
- *类似于ABAP中的类,接口充当对象的数据类型。 接口的组件与类的组件相同。
- *与类的声明不同,接口的声明不包括可见性部分。
- *这是因为在接口声明中定义的组件总是集成在类的public visibility部分。
- *
- *当两个类似的类具有相同名称的方法但功能彼此不同时,使用接口。
- *接口可能看起来类似于类,但是接口中定义的函数在类中实现以扩展该类的范围。
- *接口以及继承特性为多态性提供了基础。
- *这是因为在接口中定义的方法在不同类中的行为可能不同。
- *
- *以下是创建接口的一般格式:
- *
- *INTERFACE <intf_name>.
- * DATA.....
- * CLASS-DATA.....
- * METHODS.....
- * CLASS-METHODS.....
- *ENDINTERFACE.
- *在此语法中,< intf_name> 表示接口的名称。
- *DATA和CLASSDATA语句可以分别用于定义接口的实例和静态属性。
- *METHODS和CLASS-METHODS语句可以分别用于定义接口的实例和静态方法。
- *由于接口的定义不包括实现类,因此没有必要在接口的声明中添加DEFINITION子句。
- *
- *注意 - 接口的所有方法都是抽象的。 它们是完全声明的,包括它们的参数接口,
- *但是没有在接口中实现。 所有想要使用接口的类都必须实现接口的所有方法。
- *否则,该类将成为抽象类。
- *&---------------------------------------------------------------------*
- REPORT zmeng_10_interface.
- *&---------------------------------------------------------------------*
- *& Interface
- *&---------------------------------------------------------------------*
- INTERFACE my_interface1.
- METHODS msg.
- ENDINTERFACE.
- *&---------------------------------------------------------------------*
- *& Class: num_counter
- *&---------------------------------------------------------------------*
- CLASS num_counter DEFINITION.
- PUBLIC SECTION.
- INTERFACES my_interface1.
- METHODS add_number.
- PRIVATE SECTION.
- DATA num TYPE i.
- ENDCLASS.
- CLASS num_counter IMPLEMENTATION.
- METHOD my_interface1~msg.
- WRITE: / 'The number is', num.
- ENDMETHOD.
- METHOD add_number.
- ADD 7 TO num.
- ENDMETHOD.
- ENDCLASS.
- *&---------------------------------------------------------------------*
- *& Class: drive1
- *&---------------------------------------------------------------------*
- CLASS drive1 DEFINITION.
- PUBLIC SECTION.
- INTERFACES my_interface1.
- METHODS speed1.
- PRIVATE SECTION.
- DATA wheel1 TYPE i.
- ENDCLASS.
- CLASS drive1 IMPLEMENTATION.
- METHOD my_interface1~msg.
- WRITE: / 'Total number of wheels is', wheel1.
- ENDMETHOD.
- METHOD speed1.
- ADD 4 TO wheel1.
- ENDMETHOD.
- ENDCLASS.
- *&---------------------------------------------------------------------*
- *& Start of selection
- *&---------------------------------------------------------------------*
- START-OF-SELECTION.
- DATA object1 TYPE REF TO num_counter.
- CREATE OBJECT object1.
- CALL METHOD object1->add_number.
- CALL METHOD object1->my_interface1~msg.
- DATA object2 TYPE REF TO drive1.
- CREATE OBJECT object2.
- CALL METHOD object2->speed1.
- CALL METHOD object2->my_interface1~msg.
- * Output result
- *The number is 7
- *Total number of wheels is 4
Add Comment
Please, Sign In to add comment