ABAP ప్రోగ్రామ్‌లో కాస్టింగ్

క్లాస్ a1 నిర్వచనం.
 పబ్లిక్ విభాగం.
 డేటా: సంఖ్య 1 రకం మరియు విలువ 100.
 పద్ధతులు:m1.
 ముగింపు తరగతి.
 క్లాస్ a1 అమలు.
 పద్ధతి m1.
 వ్రాయండి: 'a1:',num1.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 క్లాస్ b1 నిర్వచనం a1 నుండి వారసత్వం.
 పబ్లిక్ విభాగం.
 పద్ధతులు:m2, m1 పునర్నిర్వచనం.
 ముగింపు తరగతి.
 క్లాస్ బి1 అమలు.
 పద్ధతి m1.
 num1 = num1 .
 వ్రాయండి: 'b1:',num1.
 ముగింపు పద్ధతి.
 పద్ధతి m2.
 వ్రాయండి: 'తరగతి b2లో M1'.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 ఎంపిక ప్రారంభం.
 డేటా: a1కి ఒక రకం రెఫ్.
 డేటా: b1ని సూచించండి.
 *డేటా: c టైప్ REF TO c1.
 ******************************************************* ************** వస్తువును సృష్టించండి బి.
 a = బి.  "అప్‌కాస్టింగ్ కాల్ మెథడ్ a->m1( ).
 * కాల్ పద్ధతి a->m2( ).  "మేము సూపర్ క్లాస్ రెఫరెన్స్ ఉపయోగించి స్వంత సబ్ క్లాస్ పద్ధతులను యాక్సెస్ చేయలేము.
 కొత్త వాక్యం.
 b ?= a.  " డౌన్ కాస్టింగ్ కాల్ మెథడ్ b->m1( ).
 కొత్త వాక్యం.
 కాల్ మెథడ్ b->m2( ).
 ******************************************************* *************** " లోపం శూన్య ref క్రియేట్ OBJECT a.
 b ?= a.  "డౌన్ కాస్టింగ్ ఇప్పటికీ డంప్ కాల్ మెథడ్ b->m1( ).
 ******************************************************* *************** వస్తువును సృష్టించండి a.
 ప్రయత్నించండి.
 b ?= a.  "మీరు 'NULL' ఆబ్జెక్ట్ రిఫరెన్స్ డంప్‌ని ఉపయోగించడానికి ప్రయత్నించారు CATCH cx_sy_move_cast_error.
 కాల్ మెథడ్ b->m1( ).
 ENDTRY.
 ******************************************************* *************** వస్తువును సృష్టించండి a.
 వస్తువును సృష్టించండి బి.
 ప్రయత్నించండి.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 కాల్ మెథడ్ b->m1( ).
 కాల్ మెథడ్ b->m2( ).
 ENDTRY.
 CLASS lcl_shape నిర్వచనం.
 పబ్లిక్ విభాగం.
 మెథడ్స్ డ్రా.
 ముగింపు తరగతి.
 Lcl_shape నుండి CLASS lcl_circle నిర్వచనం.
 పబ్లిక్ విభాగం.
 పద్ధతులు: పునర్నిర్వచనం, calc_area గీయండి.
 ముగింపు తరగతి.
 CLASS lcl_shape IMPLEMENTATION.
 మెథడ్ డ్రా.
 వ్రాయండి :/ 'ఏదైనా ఆకారాన్ని గీయడం'.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 CLASS lcl_circle IMPLEMENTATION.
 మెథడ్ డ్రా.
 వ్రాయండి :/ 'నిర్దిష్ట ఆకారాన్ని గీయడం: సర్కిల్'.
 ముగింపు పద్ధతి.
 పద్ధతి calc_area.
 వ్రాయండి :/ 'Crcle ప్రాంతం = 2iiR'.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 ఎంపిక ప్రారంభం.
 డేటా : o_cir రకం lcl_circle నుండి REF.
 O_cir వస్తువును సృష్టించండి.
 కాల్ మెథడ్ o_cir->డ్రా( ).  " కాల్స్ సబ్‌క్లాస్ డ్రా() పద్ధతి కాల్ మెథడ్ o_cir->calc_area( ).
 ULINE.
 "--------- ఇరుకైన తారాగణం (అప్‌కాస్ట్)---------------" డేటా : o_shp రకం lcl_shape.
 o_shp = o_cir.  " ఇరుకైన తారాగణం (అప్‌కాస్ట్) కాల్ మెథడ్ o_shp->డ్రా( ).  " ఉప తరగతి డ్రా() పద్ధతిని పిలుస్తుంది "METHOD o_shp->calc_area( ) కాల్ చేయండి.  " కంపైలేషన్ లోపం ULINE.
 "---------- విస్తరిస్తున్న తారాగణం (డౌన్‌కాస్ట్) ----------" డేటా : o_cir1 lcl_circleకి రెఫ్ చేయండి.
 " o_cir1 = o_shp.  " కాంప్లిలేషన్ లోపం o_cir1 ?= o_shp.  " విస్తరిస్తున్న తారాగణం(డౌన్‌కాస్ట్) కాల్ మెథడ్ o_cir1->డ్రా( ).  " కాల్స్ సబ్‌క్లాస్ డ్రా() పద్ధతి కాల్ మెథడ్ o_cir1->calc_area( ).
 క్లాస్ a1 నిర్వచనం.
 పబ్లిక్ విభాగం.
 డేటా: సంఖ్య 1 రకం మరియు విలువ 100.
 పద్ధతులు:m1.
 ముగింపు తరగతి.
 క్లాస్ a1 అమలు.
 పద్ధతి m1.
 వ్రాయండి: 'a1:',num1.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 క్లాస్ b1 నిర్వచనం a1 నుండి వారసత్వం.
 పబ్లిక్ విభాగం.
 పద్ధతులు:m2, m1 పునర్నిర్వచనం.
 ముగింపు తరగతి.
 క్లాస్ బి1 అమలు.
 పద్ధతి m1.
 num1 = num1 .
 వ్రాయండి: 'b1:',num1.
 ముగింపు పద్ధతి.
 పద్ధతి m2.
 వ్రాయండి: 'తరగతి b2లో M1'.
 ముగింపు పద్ధతి.
 ముగింపు తరగతి.
 ఎంపిక ప్రారంభం.
 డేటా: a1కి పేరెంట్ రకం రెఫ్.
 డేటా: పిల్లల రకం b1కి సూచించండి.
 *డేటా: c టైప్ REF TO c1.
 ******************************************************* **************** వస్తువును సృష్టించండి.
 parent = బిడ్డ.  " upcasting CALL METHOD parent->m1( ).
 కాల్ మెథడ్ చైల్డ్->m1( ).
 కాల్ మెథడ్ చైల్డ్->m2( ).
 * కాల్ పద్ధతి a->m2( ).  "మేము సూపర్ క్లాస్ రెఫరెన్స్ ఉపయోగించి స్వంత సబ్ క్లాస్ పద్ధతులను యాక్సెస్ చేయలేము.
 కొత్త వాక్యం.
 చైల్డ్ ?= పేరెంట్.  " డౌన్ కాస్టింగ్ కాల్ మెథడ్ చైల్డ్->m1( ).
 కొత్త వాక్యం.
 కాల్ మెథడ్ చైల్డ్->m2( ).
 ******************************************************* ***************** *" లోపం శూన్య ref *OBJECTని సృష్టించండి a.
 *b ?= a.  "డౌన్ కాస్టింగ్ ఇప్పటికీ దాని ఇవ్వడం డంప్ *కాల్ మెథడ్ b->m1( ).
 ******************************************************* **************** * వస్తువును సృష్టించండి a.
 ప్రయత్నించండి.
 b ?= a.  "మీరు 'NULL' ఆబ్జెక్ట్ రిఫరెన్స్ డంప్‌ని ఉపయోగించడానికి ప్రయత్నించారు CATCH cx_sy_move_cast_error.
 కాల్ మెథడ్ b->m1( ).
 ENDTRY.
 ******************************************************* **************** * వస్తువును సృష్టించండి a.
 వస్తువును సృష్టించండి బి.
 ప్రయత్నించండి.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 కాల్ మెథడ్ b->m1( ).
 కాల్ మెథడ్ b->m2( ).
 ENDTRY.
 ******** ప్రత్యేక విలువలు****************** డేటా : lv_string TYPE స్ట్రింగ్, lv_string2 TYPE స్ట్రింగ్, lv_string_final TYPE స్ట్రింగ్.
 రకాలు: BEGIN OF ty_data, auth TYPE c, END OF ty_data.
 డేటా: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 టై_డేటా యొక్క TYPE TABLE, lt_user TYPE TABLE ty_data.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 ',' వద్ద lv_stringని స్ప్లిట్ చేయండి.
 lv_string2 వద్ద ',' పట్టికలోకి lt_user2ని విభజించండి.
 lt_user2లో లూప్ చేయి ఫీల్డ్-సింబల్(అసైనింగ్) )
 చొప్పించు పట్టికలో lt_user.
 ENDLOOP.
 SORT lt_user ప్రమాణం ద్వారా.
 lt_user comPARING auth నుండి ప్రక్కనే ఉన్న నకిలీలను తొలగించండి.
 IF sy-subrc = 0.
 lt_user అసైనింగ్ ఫీల్డ్-SYMBOL(లో లూప్ చేయండి )
 lv_string_final ప్రారంభమైనది అయితే.
 lv_string_final = -ప్రామాణీకరణ.
 లేకపోతే.
 CONCATENATE lv_string_final -auth INTO lv_string_final ',' ద్వారా వేరు చేయబడింది.
 ENDIF.
 ENDLOOP.
 ENDIF.

 

అభిప్రాయము ఇవ్వగలరు

స్పామ్ తగ్గించడానికి ఈ సైట్ Akismet ను ఉపయోగిస్తుంది. మీ వ్యాఖ్య డేటా ఎలా ప్రాసెస్ చేయబడిందో తెలుసుకోండి.