interface status.
methods write.
endinterface. "status
class counter definition.
public section.
interfaces status.
methods increment.
private section.
data count type i.
endclass. "counter definition
class counter implementation.
method status~write.
write: / 'count in counter is', count.
endmethod. "status~write
method increment.
add 1 to count.
endmethod. "increment
endclass. "counter implementation
class bicycle definition.
public section.
interfaces status.
methods drive.
private section.
data speed type i.
endclass. "bicycle definition
class bicycle implementation.
method status~write.
write: / 'speed of bicycle is', speed.
endmethod. "status~write
method drive.
add 10 to speed.
endmethod. "drive
endclass. "bicycle implementation
data: count type ref to counter,
bike type ref to bicycle,
status type ref to status, "接口的引用作为工作区
status_tab type table of ref to status.
start-of-selection.
create object: count, bike.
do 5 times.
call method: count->increment,
bike->drive.
enddo.
append: count to status_tab,
bike to status_tab.
loop at status_tab into status.
call method status->write.
endloop.