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