‎2007 Jan 24 8:29 AM
REPORT ZRAVI_05.
class ravi definition.
public section.
methods: ex IMPORTING A TYPE I B TYPE I,DISP.
DATA: D TYPE I,E TYPE I.
ENDCLASS.
CLASS RAVI IMPLEMENTATION.
METHOD EX.
D = A.
E = B.
CALL METHOD DISP( ).
ENDMETHOD.
METHOD DISP.
WRITE: / D,E.
ENDMETHOD.
ENDCLASS.
CLASS RAVI1 DEFINITION INHERITING FROM RAVI.
PUBLIC SECTION.
METHODS:EX REDEFINITION,ADD.
ENDCLASS.
CLASS RAVI1 IMPLEMENTATION.
METHOD EX.
CALL METHOD SUPER->EX( A = A B = B ).
DATA: R TYPE I.
R = A + B.
WRITE: / R.
ENDMETHOD.
METHOD ADD.
WRITE: / 'HELLO'.
ENDMETHOD.
ENDCLASS.
DATA: R_RAVI TYPE REF TO RAVI,R_RAVI1 TYPE REF TO RAVI1.
START-OF-SELECTION.
CREATE OBJECT R_RAVI.
CREATE OBJECT R_RAVI1.
R_RAVI = R_RAVI1.
R_RAVI->ex( A = 4 B = 5 ). "THIS STATEMENT WORKS GOOD
R_RAVI->ADD( ). "THIS STATEMENT IS GIVING AN ERROR
‎2007 Jan 24 9:30 AM
The Method add belongs to Class Ravi1 and can be accessed only by object Ravi1 and Ravi so the statement for that is
R_RAVI1->ADD( ) and not R_RAVI->ADD .
‎2007 Jan 24 11:08 AM
my question is about upcasting or narrow casting when the narrow casting is done how to access the method in the subcalss using the superclass object.