Ich habe das Problem "gelöst"... die Casts funktionieren in beide Richtungen, wenn ich die Referenzvariablen alle statisch allgemein definiere:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- lo_auto TYPE REF TO zcl_test_auto,
- lo_taxi TYPE REF TO zcl_test_auto,
- lo_bus TYPE REF TO zcl_test_auto,
- GeSHi ©
Wichtig ist nur, dass dann anschließend bei der Erzeugung der Instanzen explizit der gewünschte Typ mitgegeben wird (also den dynamischen Typ entsprechend der mehrheitlichen Verwendung angebe):
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- " AUTO-Objekt erzeugen
- CREATE OBJECT lo_auto " Auto
- TYPE zcl_test_auto
- EXPORTING
- iv_farbe = 'ROT'.
- " TAXI-Objekt erzeugen
- CREATE OBJECT lo_taxi " Taxi
- TYPE zcl_test_taxi
- EXPORTING
- iv_farbe = 'GELB'.
- " BUS-Objekt erzeugen
- CREATE OBJECT lo_bus " Bus
- TYPE zcl_test_bus
- EXPORTING
- iv_farbe = 'BLAU'.
- GeSHi ©
Anschließend sind die Casts in beide Richtungen möglich.
Ehrlich gesagt ist dies nicht wirklich das, was ich mir unter "Casting" vorstelle - aber in ABAP scheint es nur so zu funktionieren. -.-