በ ABAP ፕሮግራም ውስጥ መውሰድ

ክፍል a1 ፍቺ።
 የህዝብ ክፍል.
 ውሂብ፡ num1 TYPE i VALUE 100
 ዘዴዎች፡m1.
 የመጨረሻ ክፍል
 ክፍል A1 ትግበራ።
 ዘዴ m1.
 ጻፍ: 'a1:',num1.
 ENDMETHOD
 የመጨረሻ ክፍል
 ክፍል b1 ፍቺ ከ a1 ውርስ።
 የህዝብ ክፍል.
 ዘዴዎች፡m2፣ m1 redefinition.
 የመጨረሻ ክፍል
 ክፍል b1 ትግበራ።
 ዘዴ m1.
 ቁጥር 1 = ቁጥር 1.
 ጻፍ፡ 'b1፡'፣ቁጥር1።
 ENDMETHOD
 ዘዴ m2.
 ጻፍ፡ 'M2 በክፍል b1'
 ENDMETHOD
 የመጨረሻ ክፍል
 ጅምር-ምርጫ።
 ውሂብ፡ ወደ a1 አይነት ማመሳከሪያ
 ውሂብ፡ b TYPE REF TO b1.
 * ውሂብ፡ c አይነት REF TO c1
 ************************************** ************** ነገር ፍጠር ለ.
 ሀ = ለ.  "የጥሪ ዘዴ a->m1()ን ማሻሻል።
 * METHOD a->m2() ይደውሉ።  ሱፐር መደብ ማጣቀሻን በመጠቀም የራሳችንን የንዑስ ክፍል ስልቶችን ማግኘት አንችልም።
 አዲስ መስመር።
 b?= ሀ.  " down casting የጥሪ ዘዴ b->m1()።
 አዲስ መስመር።
 የጥሪ ዘዴ b->m2()።
 ************************************** *************** "ስህተት null ref መፍጠር OBJECT ሀ.
 b?= ሀ.  "ወደ ታች መወርወር አሁንም ሰጪው ጥሪ METHOD b->m1 ()።
 ****************************************** *************** ነገር ፍጠር ሀ.
 ይሞክሩ።
 b?= ሀ.  "NULL" የነገር ማጣቀሻ CATCH cx_sy_move_cast_error ለመጠቀም ሞክረናል።
 የጥሪ ዘዴ b->m1()።
 መጨረሻ።
 ****************************************** *************** ነገር ፍጠር ሀ.
 ነገር ፍጠር ለ.
 ይሞክሩ።
 b?= ሀ.
 CATCH cx_sy_move_cast_ስህተት።
 የጥሪ ዘዴ b->m1()።
 METHOD b->m2 () ይደውሉ።
 መጨረሻ።
 CLASS lcl_ቅርጽ DEFINITION።
 የህዝብ ክፍል.
 ዘዴዎች መሳል.
 የመጨረሻ ክፍል
 CLASS lcl_ክበብ ፍቺ ከ lcl_ቅርጽ መውረስ።
 የህዝብ ክፍል.
 ዘዴዎች፡ REDEFINITION፣ calc_አካባቢ ይሳሉ።
 የመጨረሻ ክፍል
 CLASS lcl_ቅርጽ IMPLEMENTATION።
 ዘዴ መሳል።
 ጻፍ:/ 'ማንኛውም ቅርጽ መሳል'.
 ENDMETHOD
 የመጨረሻ ክፍል
 CLASS cl_ክበብ IMPLEMENTATION።
 ዘዴ መሳል።
 ጻፍ:/ 'የተለየ ቅርጽ በመሳል: ክበብ'.
 ENDMETHOD
 METHOD ካልሲ_አካባቢ።
 ጻፍ:/ 'Crcle አካባቢ = 2iiR'.
 ENDMETHOD
 የመጨረሻ ክፍል
 ጅምር-ምርጫ።
 ዳታ፡ o_cir TYPE REF TO lcl_circle
 OBJECT o_cir ፍጠር።
 ዘዴ ይደውሉ o_cir->መሳል()።  " ጥሪዎች ንዑስ ክፍል Draw() ዘዴ ይደውሉ METHOD o_cir->calc_area( )።
 ULINE
 "-------- ጠባብ ውሰድ(አፕካስት)---------------" ዳታ፡ o_shp TYPE REF TO lcl_ቅርጽ።
 o_shp = o_cir.  " ጠባብ ውሰድ(አፕካስት) የጥሪ ዘዴ o_shp->መሳል()።  " ጥሪዎች ንዑስ ክፍል Draw() ዘዴ "METHOD o_shp->calc_area( ) ይደውሉ።  " የማጠናቀር ስህተት ULINE
 "-- -- ማስፋፋት Cast(Downcast) -----------" ዳታ፡ o_cir1 TYPE REF TO lcl_circle።
 " o_cir1 = o_shp.  " complilation error o_cir1 ?= o_shp.  Cast (Downcast) የጥሪ ዘዴ o_cir1->መሳል ()  " ጥሪዎች ንዑስ ክፍል Draw() ዘዴ ይደውሉ METHOD o_cir1->calc_area( )።
 ክፍል a1 ፍቺ።
 የህዝብ ክፍል.
 ውሂብ፡ num1 TYPE i VALUE 100
 ዘዴዎች፡m1.
 የመጨረሻ ክፍል
 ክፍል A1 ትግበራ።
 ዘዴ m1.
 ጻፍ: 'a1:',num1.
 ENDMETHOD
 የመጨረሻ ክፍል
 ክፍል b1 ፍቺ ከ a1 ውርስ።
 የህዝብ ክፍል.
 ዘዴዎች፡m2፣ m1 redefinition.
 የመጨረሻ ክፍል
 ክፍል b1 ትግበራ።
 ዘዴ m1.
 ቁጥር 1 = ቁጥር 1.
 ጻፍ፡ 'b1፡'፣ቁጥር1።
 ENDMETHOD
 ዘዴ m2.
 ጻፍ፡ 'M2 በክፍል b1'
 ENDMETHOD
 የመጨረሻ ክፍል
 ጅምር-ምርጫ።
 ውሂብ፡ የወላጅ አይነት ማጣቀሻ ወደ a1.
 ውሂብ፡ የልጅ አይነት ሪፍ ወደ b1.
 * ውሂብ፡ c አይነት REF TO c1
 ************************************** ************** የነገር ልጅ ፍጠር።
 ወላጅ = ልጅ.  "የጥሪ ዘዴ ወላጅ->m1()ን ማሻሻል።
 የጥሪ ዘዴ ልጅ -> m1 ().
 የጥሪ ዘዴ ልጅ -> m2 ().
 * METHOD a->m2() ይደውሉ።  ሱፐር መደብ ማጣቀሻን በመጠቀም የራሳችንን የንዑስ ክፍል ስልቶችን ማግኘት አንችልም።
 አዲስ መስመር።
 ልጅ? = ወላጅ.  " down casting የጥሪ ዘዴ ልጅ ->m1()።
 አዲስ መስመር።
 የጥሪ ዘዴ ልጅ -> m2 ().
 ************************************** ***************** *"ስህተት null ref * OBJECT ፍጠር ሀ.
 *b?= ሀ.  "down casting still it giveing ​​dip *ደውል METHOD b->m1( )።
 ************************************** ***************** * ነገር ፍጠር ሀ.
 ይሞክሩ።
 b?= ሀ.  "NULL" የነገር ማጣቀሻ CATCH cx_sy_move_cast_error ለመጠቀም ሞክረናል።
 የጥሪ ዘዴ b->m1()።
 መጨረሻ።
 ************************************** ***************** * ነገር ፍጠር ሀ.
 ነገር ፍጠር ለ.
 ይሞክሩ።
 b?= ሀ.
 CATCH cx_sy_move_cast_ስህተት።
 የጥሪ ዘዴ b->m1()።
 METHOD b->m2 () ይደውሉ።
 መጨረሻ።
 ******** ልዩ እሴቶች**************** DATA : lv_string TYPE string፣ lv_string2 TYPE string፣ lv_string_final TYPE string።
 ዓይነቶች፡ የty_ውሂብ መጀመሪያ፣ የተረጋገጠ TYPE ሐ፣ የty_ውሂብ መጨረሻ።
 ዳታ፡ ls_user TYPE ty_data፣ ls_user2 TYPE ty_data፣ lt_user2 የty_ዳታ አይነት፣ lt_ተጠቃሚ የty_ዳታ አይነት።
 lv_string = 'a,b,c,a'።
 lv_string2 = 'd,b,c,a'።
 lv_string AT '፣ ወደ TABLE lt_user ክፈሉ።
 lv_string2 በ '፣' ወደ TABLE lt_user2 ክፈሉ።
 lt_user2 ASSIGNING FIELD-SYMBOL() ).
 አስገባ INTO TABLE lt_ተጠቃሚ።
 ENDLOOP
 LT_ተጠቃሚን በአውት ደርድር።
 ተጓዳኝ ብዜቶችን ከlt_ተጠቃሚ ማወዳደር ሰርዝ።
 sy-subrc = 0 ከሆነ።
 የ lt_user ASSIGNING FIELD-SYMBOL() ).
 lv_string_የመጨረሻው መጀመሪያ ከሆነ።
 lv_string_final = - ትክክለኛነት.
 ሌላ።
 CONCATENATE lv_string_የመጨረሻ -በ lv_string_የፍጻሜውን የተረጋገጠ በ'፣'።
 መጨረሻ
 ENDLOOP
 መጨረሻ

 

አንድ አስተያየት ይስጡ

ይህ ጣቢያ አይፈለጌን ለመቀነስ Akismet ይጠቀማል. አስተያየትዎ እንዴት እንደሚሰራ ይወቁ.