ABAP કાર્યક્રમમાં કાસ્ટિંગ

વર્ગ a1 વ્યાખ્યા.
 જાહેર વિભાગ.
 ડેટા: નંબર 1 પ્રકાર અને મૂલ્ય 100.
 પદ્ધતિઓ:m1.
 અંતિમ વર્ગ.
 વર્ગ a1 અમલીકરણ.
 પદ્ધતિ m1.
 લખો: 'a1:', નંબર1.
 ENDMETHOD.
 અંતિમ વર્ગ.
 વર્ગ b1 ની વ્યાખ્યા a1 થી વારસામાં મળે છે.
 જાહેર વિભાગ.
 પદ્ધતિઓ:m2, m1 પુનઃવ્યાખ્યા.
 અંતિમ વર્ગ.
 વર્ગ b1 અમલીકરણ.
 પદ્ધતિ m1.
 num1 = num1 .
 લખો: 'b1:', નંબર1.
 ENDMETHOD.
 પદ્ધતિ m2.
 લખો: 'B2 વર્ગમાં M1'.
 ENDMETHOD.
 અંતિમ વર્ગ.
 પસંદગીની શરૂઆત.
 ડેટા: a1 નો એક પ્રકાર સંદર્ભ.
 ડેટા: b ટાઈપ કરો સંદર્ભ માટે b1.
 *ડેટા: c પ્રકાર REF TO c1.
 ******************************************************** ************** ઑબ્જેક્ટ બનાવો b.
 a = b.  "અપકાસ્ટિંગ કૉલ પદ્ધતિ a->m1( ).
 *કૉલ પદ્ધતિ a->m2( ).  "અમે સુપર ક્લાસ રેફનો ઉપયોગ કરીને પોતાની પેટા વર્ગ પદ્ધતિઓને ઍક્સેસ કરી શકતા નથી.
 નવી-લાઇન.
 b ?= a.  "ડાઉન કાસ્ટિંગ કૉલ પદ્ધતિ b->m1( ).
 નવી-લાઇન.
 કૉલ પદ્ધતિ b->m2( ).
 ******************************************************** *************** " ભૂલ નલ સંદર્ભ બનાવો ઑબ્જેક્ટ એ.
 b ?= a.  "ડાઉન કાસ્ટિંગ હજુ પણ તેની ડમ્પ કૉલ પદ્ધતિ b->m1( ) આપે છે.
 ******************************************************** *************** ઑબ્જેક્ટ બનાવો a.
 પ્રયાસ કરો.
 b ?= a.  "તમે 'NULL' ઑબ્જેક્ટ સંદર્ભ ડમ્પ CATCH cx_sy_move_cast_error નો ઉપયોગ કરવાનો પ્રયાસ કર્યો છે.
 કૉલ પદ્ધતિ b->m1( ).
 અંતિમ પ્રયાસ.
 ******************************************************** *************** ઑબ્જેક્ટ બનાવો a.
 ઑબ્જેક્ટ બનાવો b.
 પ્રયાસ કરો.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 કૉલ પદ્ધતિ b->m1( ).
 કૉલ પદ્ધતિ b->m2( ).
 અંતિમ પ્રયાસ.
 વર્ગ lcl_shape DEFINITION.
 જાહેર વિભાગ.
 પદ્ધતિઓ દોરો.
 અંતિમ વર્ગ.
 વર્ગ lcl_circle વ્યાખ્યા lcl_shape થી વારસાગત.
 જાહેર વિભાગ.
 પદ્ધતિઓ: REDEFINITION દોરો, calc_area.
 અંતિમ વર્ગ.
 વર્ગ lcl_shape અમલીકરણ.
 પદ્ધતિ ડ્રો.
 લખો :/ 'કોઈપણ આકાર દોરો'.
 ENDMETHOD.
 અંતિમ વર્ગ.
 વર્ગ lcl_circle અમલીકરણ.
 પદ્ધતિ ડ્રો.
 લખો :/ 'ચોક્કસ આકાર દોરો: વર્તુળ'.
 ENDMETHOD.
 પદ્ધતિ કેલ્ક_એરિયા.
 લખો :/ 'Crcle નો વિસ્તાર = 2iiR'.
 ENDMETHOD.
 અંતિમ વર્ગ.
 પસંદગીની શરૂઆત.
 ડેટા : o_cir TYPE સંદર્ભ માટે lcl_circle.
 ઑબ્જેક્ટ o_cir બનાવો.
 કૉલ પદ્ધતિ o_cir->ડ્રો( ).  " સબક્લાસ ડ્રો() મેથડ કૉલ મેથડ o_cir->calc_area( )ને કૉલ કરે છે.
 યુલાઇન.
 "--------- સાંકડી કાસ્ટ(અપકાસ્ટ)---------------" ડેટા : o_shp TYPE સંદર્ભ માટે lcl_shape.
 o_shp = o_cir.  " સાંકડી કાસ્ટ(અપકાસ્ટ) કૉલ પદ્ધતિ o_shp->ડ્રો( ).  "કોલ્સ સબ ક્લાસ ડ્રો() પદ્ધતિ "કોલ પદ્ધતિ 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:', નંબર1.
 ENDMETHOD.
 અંતિમ વર્ગ.
 વર્ગ b1 ની વ્યાખ્યા a1 થી વારસામાં મળે છે.
 જાહેર વિભાગ.
 પદ્ધતિઓ:m2, m1 પુનઃવ્યાખ્યા.
 અંતિમ વર્ગ.
 વર્ગ b1 અમલીકરણ.
 પદ્ધતિ m1.
 num1 = num1 .
 લખો: 'b1:', નંબર1.
 ENDMETHOD.
 પદ્ધતિ m2.
 લખો: 'B2 વર્ગમાં M1'.
 ENDMETHOD.
 અંતિમ વર્ગ.
 પસંદગીની શરૂઆત.
 ડેટા: પેરેન્ટ ટાઇપ રેફ ટુ a1.
 ડેટા: બાળક TYPE સંદર્ભ માટે b1.
 *ડેટા: c પ્રકાર REF TO c1.
 ******************************************************** ************** ઓબ્જેક્ટ બાઈક બનાવો.
 માતાપિતા = બાળક.  "અપકાસ્ટિંગ કૉલ મેથડ પેરેન્ટ->m1( ).
 કૉલ પદ્ધતિ બાળક->m1( ).
 કૉલ પદ્ધતિ બાળક->m2( ).
 *કૉલ પદ્ધતિ a->m2( ).  "અમે સુપર ક્લાસ રેફનો ઉપયોગ કરીને પોતાની પેટા વર્ગ પદ્ધતિઓને ઍક્સેસ કરી શકતા નથી.
 નવી-લાઇન.
 બાળક? = માતાપિતા.  "ડાઉન કાસ્ટિંગ કૉલ મેથડ ચાઇલ્ડ->m1( ).
 નવી-લાઇન.
 કૉલ પદ્ધતિ બાળક->m2( ).
 ******************************************************** ****************** "ભૂલ નલ રેફ * બનાવો ઑબ્જેક્ટ એ.
 *b ?= a.  "ડાઉન કાસ્ટિંગ હજી પણ ડમ્પ આપી રહ્યું છે *કોલ પદ્ધતિ b->m1( ).
 ******************************************************** **************** * ઑબ્જેક્ટ બનાવો a.
 પ્રયાસ કરો.
 b ?= a.  "તમે 'NULL' ઑબ્જેક્ટ સંદર્ભ ડમ્પ CATCH cx_sy_move_cast_error નો ઉપયોગ કરવાનો પ્રયાસ કર્યો છે.
 કૉલ પદ્ધતિ b->m1( ).
 અંતિમ પ્રયાસ.
 ******************************************************** **************** * ઑબ્જેક્ટ બનાવો a.
 ઑબ્જેક્ટ બનાવો b.
 પ્રયાસ કરો.
 b ?= a.
 CATCH cx_sy_move_cast_error.
 કૉલ પદ્ધતિ b->m1( ).
 કૉલ પદ્ધતિ b->m2( ).
 અંતિમ પ્રયાસ.
 ******** અનન્ય મૂલ્યો****************** ડેટા : lv_string TYPE string, lv_string2 TYPE string, lv_string_final TYPE સ્ટ્રિંગ.
 TYPES: ty_data ની શરૂઆત, auth TYPE c, ty_data નો અંત.
 ડેટા: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 TYPE ty_data, lt_user TYPE ty_dataનું કોષ્ટક.
 lv_string = 'a,b,c,a'.
 lv_string2 = 'd,b,c,a'.
 સ્પ્લિટ lv_string AT ',' INTO TABLE lt_user.
 સ્પ્લિટ lv_string2 AT ',' INTO TABLE lt_user2.
 lt_user2 એસાઇનિંગ ફીલ્ડ-સિમ્બોલ પર લૂપ કરો( ).
 દાખલ કરો ટેબલમાં lt_user.
 એન્ડલૂપ.
 પ્રમાણીકરણ દ્વારા lt_user SORT.
 lt_user comparing auth માંથી અડીને ડુપ્લિકેટ કાઢી નાખો.
 IF sy-subrc = 0.
 lt_user એસાઇનિંગ ફીલ્ડ-સિમ્બોલ પર લૂપ કરો( ).
 જો lv_string_final પ્રારંભિક છે.
 lv_string_final = -ઓથ.
 બાકી.
 CONCATENATE lv_string_final - lv_string_final માં ',' દ્વારા વિભાજિત કરેલ.
 ENDIF.
 એન્ડલૂપ.
 ENDIF.

 

પ્રતિક્રિયા આપો

સ્પામ ઘટાડવા માટે આ સાઇટ Akismet નો ઉપયોગ કરે છે. તમારો ટિપ્પણી ડેટા કેવી રીતે પ્રક્રિયા કરવામાં આવે છે તે જાણો.