JSRUN 用代码说话

接口

编辑教程

接口

类似于ABAP中的类,接口充当对象的数据类型。 接口的组件与类的组件相同。 与类的声明不同,接口的声明不包括可见性部分。 这是因为在接口声明中定义的组件总是集成在类的public visibility部分。

当两个类似的类具有相同名称的方法但功能彼此不同时,使用接口。 接口可能看起来类似于类,但是接口中定义的函数在类中实现以扩展该类的范围。 接口以及继承特性为多态性提供了基础。 这是因为在接口中定义的方法在不同类中的行为可能不同。

以下是创建接口的一般格式:

INTERFACE <intf_name>. 
DATA..... 
CLASS-DATA..... 
METHODS..... 
CLASS-METHODS..... 
ENDINTERFACE.

在此语法中,< intf_name> 表示接口的名称。 DATA和CLASSDATA语句可以分别用于定义接口的实例和静态属性。 METHODS和CLASS-METHODS语句可以分别用于定义接口的实例和静态方法。 由于接口的定义不包括实现类,因此没有必要在接口的声明中添加DEFINITION子句。

注意 - 接口的所有方法都是抽象的。 它们是完全声明的,包括它们的参数接口,但是没有在接口中实现。 所有想要使用接口的类都必须实现接口的所有方法。 否则,该类将成为抽象类。

我们在类的实现部分使用以下语法:

INTERFACE <intf_name>.

在此语法中,< intf_name> 表示接口的名称。 请注意,此语法必须在类的public部分中使用。

以下语法用于实现类中实现接口的方法:

METHOD <intf_name~method_m>. 
<statements>. 
ENDMETHOD.

在该语法中,< intf_name〜method_m> 表示< intf_name>的方法的完全声明的名称。 接口。

例子

Report ZINTERFACE1. 
INTERFACE my_interface1. 
Methods msg. 
ENDINTERFACE. 

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 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. 
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.

上面的代码产生以下输出 :

The number is 7 
Total number of wheels is 4

在上面的示例中,my_interface1是包含'msg'方法的接口的名称。 接下来,定义和实现两个类,num_counter和drive1。 这两个类实现了'msg'方法,以及定义它们各自实例的行为的特定方法,例如add_number和speed1方法。

注意 - add_number和speed1方法特定于各个类。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟