Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

simple code,strange issue

daixiong_jiang3
Active Participant
0 Likes
663

i write the following code in my Netweaver abap trival version to test the inheritance of object:

REPORT z_object.

CLASS zclass DEFINITION.

PUBLIC SECTION.

METHODS:m1,m2.

ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.

PUBLIC SECTION.

METHODS m2 REDEFINITION.

ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.

METHOD m1.

CALL METHOD me->m2.

ENDMETHOD. "m1

METHOD m2.

MESSAGE 'hello world' TYPE 'I'.

ENDMETHOD. "m2

ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.

METHOD m2.

MESSAGE 'WORLD HELLO' TYPE 'I'.

ENDMETHOD. "M2

ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

DATA: ref1 TYPE REF TO zclass,

ref2 TYPE REF TO zclass_sub.

CREATE OBJECT:ref1,ref2.

then the error message says: the statement "CREATE OBJECT:ref1,ref2." is not accessible.

how does this happen and how can i correct it? thanks in advance.i checked everything but found there should be no errors.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
641

Hi,

When you are declaring Data i.e referenec variable just write

START-OF-SELECTION.

Check this


CLASS zclass DEFINITION.
PUBLIC SECTION.
METHODS:m1,m2.
ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.
PUBLIC SECTION.
METHODS m2 REDEFINITION.
ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.
METHOD m1.
CALL METHOD me->m2.
ENDMETHOD. "m1
METHOD m2.
MESSAGE 'hello world' TYPE 'I'.
ENDMETHOD. "m2
ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.
METHOD m2.
MESSAGE 'WORLD HELLO' TYPE 'I'.
ENDMETHOD. "M2
ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

start-of-selection." -> Here**************

DATA: ref1 TYPE REF TO zclass,
ref2 TYPE REF TO zclass_sub.

CREATE OBJECT: ref1,ref2.

Regards,

Sujit

5 REPLIES 5
Read only

Former Member
0 Likes
642

Hi,

When you are declaring Data i.e referenec variable just write

START-OF-SELECTION.

Check this


CLASS zclass DEFINITION.
PUBLIC SECTION.
METHODS:m1,m2.
ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.
PUBLIC SECTION.
METHODS m2 REDEFINITION.
ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.
METHOD m1.
CALL METHOD me->m2.
ENDMETHOD. "m1
METHOD m2.
MESSAGE 'hello world' TYPE 'I'.
ENDMETHOD. "m2
ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.
METHOD m2.
MESSAGE 'WORLD HELLO' TYPE 'I'.
ENDMETHOD. "M2
ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

start-of-selection." -> Here**************

DATA: ref1 TYPE REF TO zclass,
ref2 TYPE REF TO zclass_sub.

CREATE OBJECT: ref1,ref2.

Regards,

Sujit

Read only

Former Member
0 Likes
641

Hii

Check this code


REPORT z_sdn.


CLASS zclass DEFINITION.
PUBLIC SECTION.
METHODS:m1,m2.
ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.
PUBLIC SECTION.
METHODS m2 REDEFINITION.
ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.
METHOD m1.
CALL METHOD me->m2.
ENDMETHOD. "m1
METHOD m2.
MESSAGE 'hello world' TYPE 'I'.
ENDMETHOD. "m2
ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.
METHOD m2.
MESSAGE 'WORLD HELLO' TYPE 'I'.
ENDMETHOD. "M2
ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

DATA: ref1 TYPE REF TO zclass,
      ref2 TYPE REF TO zclass_sub.

START-OF-SELECTION.
CREATE OBJECT:ref1.

Regards

Abhijeet

Read only

daixiong_jiang3
Active Participant
0 Likes
641

when i add the statement "START-OF-SELECTION." to the report it actually works.

another issue occurs:

REPORT z_object.

CLASS zclass DEFINITION.

PUBLIC SECTION.

METHODS:m1,m2.

ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.

PUBLIC SECTION.

METHODS m2 REDEFINITION.

ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.

METHOD m1.

CALL METHOD me->m2.

ENDMETHOD. "m1

METHOD m2.

MESSAGE 'hello world' TYPE 'I'.

ENDMETHOD. "m2

ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.

METHOD m2.

SUPER->M2.

MESSAGE 'WORLD HELLO' TYPE 'I'.

ENDMETHOD. "M2

ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

START-OF-SELECTION.

DATA: ref1 TYPE REF TO zclass,

ref2 TYPE REF TO zclass_sub.

CREATE OBJECT:ref1,ref2.

The error message says: SUPER->M2 is not defined.

but in fact we can use the pseudoreference super-> to access the same superclass method in the redifinited method..

Edited by: Daixiong Jiang on Aug 19, 2008 5:29 PM

Read only

0 Likes
641

Super-m2( ). You forgot the brackets. I do this all the time!

matt

Read only

0 Likes
641

Hi,

Check the code you have written-I have changed-



CLASS zclass DEFINITION.
PUBLIC SECTION.
METHODS:m1,m2.
ENDCLASS. "zclass DEFINITION

CLASS zclass_sub DEFINITION INHERITING FROM zclass.
PUBLIC SECTION.
METHODS m2 REDEFINITION.
ENDCLASS. "ZCLASS_SUB DEFINITION

CLASS zclass IMPLEMENTATION.
METHOD m1.
CALL METHOD me->m2.
ENDMETHOD. "m1
METHOD m2.
MESSAGE 'hello world' TYPE 'I'.
ENDMETHOD. "m2
ENDCLASS. "zclass IMPLEMENTATION

CLASS zclass_sub IMPLEMENTATION.
METHOD m2.
SUPER->M2( ). "<----------------Here Brackets
MESSAGE 'WORLD HELLO' TYPE 'I'.
ENDMETHOD. "M2
ENDCLASS. "ZCLASS_SUB IMPLEMENTATION

START-OF-SELECTION.

DATA: ref1 TYPE REF TO zclass,
ref2 TYPE REF TO zclass_sub.

CREATE OBJECT:ref1,ref2.

Regards,

Sujit