W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
類似于ABAP中的類,接口充當(dāng)對象的數(shù)據(jù)類型。 接口的組件與類的組件相同。 與類的聲明不同,接口的聲明不包括可見性部分。 這是因為在接口聲明中定義的組件總是集成在類的public visibility部分。
當(dāng)兩個類似的類具有相同名稱的方法但功能彼此不同時,使用接口。 接口可能看起來類似于類,但是接口中定義的函數(shù)在類中實現(xiàn)以擴(kuò)展該類的范圍。 接口以及繼承特性為多態(tài)性提供了基礎(chǔ)。 這是因為在接口中定義的方法在不同類中的行為可能不同。
以下是創(chuàng)建接口的一般格式:
INTERFACE <intf_name>. DATA..... CLASS-DATA..... METHODS..... CLASS-METHODS..... ENDINTERFACE.
在此語法中,< intf_name> 表示接口的名稱。 DATA和CLASSDATA語句可以分別用于定義接口的實例和靜態(tài)屬性。 METHODS和CLASS-METHODS語句可以分別用于定義接口的實例和靜態(tài)方法。 由于接口的定義不包括實現(xiàn)類,因此沒有必要在接口的聲明中添加DEFINITION子句。
注意 - 接口的所有方法都是抽象的。 它們是完全聲明的,包括它們的參數(shù)接口,但是沒有在接口中實現(xiàn)。 所有想要使用接口的類都必須實現(xiàn)接口的所有方法。 否則,該類將成為抽象類。
我們在類的實現(xiàn)部分使用以下語法:
INTERFACE <intf_name>.
在此語法中,< intf_name> 表示接口的名稱。 請注意,此語法必須在類的public部分中使用。
以下語法用于實現(xiàn)類中實現(xiàn)接口的方法:
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.
上面的代碼產(chǎn)生以下輸出 :
The number is 7 Total number of wheels is 4
在上面的示例中,my_interface1是包含'msg'方法的接口的名稱。 接下來,定義和實現(xiàn)兩個類,num_counter和drive1。 這兩個類實現(xiàn)了'msg'方法,以及定義它們各自實例的行為的特定方法,例如add_number和speed1方法。
注意 - add_number和speed1方法特定于各個類。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: