ABAP कार्यक्रममा कास्ट गर्दै

कक्षा ए १ परिभाषा।
 सार्वजनिक खण्ड।
 डाटा: num1 TYPE i VALUE 100।
 विधिहरू: m1।
 ENDCLASS।
 कक्षा A1 कार्यान्वयन।
 विधि m1।
 लेख्नुहोस्: 'a1:', नम्बर1।
 ENDMETHOD।
 ENDCLASS।
 कक्षा b1 परिभाषा a1 बाट वंशानुगत।
 सार्वजनिक खण्ड।
 METHODS:m2, m1 REDEFINITION।
 ENDCLASS।
 कक्षा b1 कार्यान्वयन।
 विधि m1।
 num1 = num1।
 लेख्नुहोस्: 'b1:', नम्बर1।
 ENDMETHOD।
 विधि m2।
 लेख्नुहोस्: 'कक्षा b2 मा M1'।
 ENDMETHOD।
 ENDCLASS।
 स्टार्ट-अफ-चयन।
 डाटा: a1 को एक प्रकार सन्दर्भ।
 डाटा: b टाइप गर्नुहोस् सन्दर्भमा b1।
 *डेटा: c टाइप गर्नुहोस् REF TO c1।
 **************************************************** ************** वस्तु सिर्जना गर्नुहोस् ख।
 a = b  "अपकास्टिङ कल विधि a->m1( )।
 *कल METHOD a->m2()।  "हामी सुपर क्लास रेफ प्रयोग गरेर आफ्नै उप-वर्ग विधिहरू पहुँच गर्न सक्दैनौं।
 नयाँ-लाइन।
 b? = a।  "डाउन कास्टिङ कल विधि b->m1( )।
 नयाँ-लाइन।
 कल विधि b->m2()।
 **************************************************** *************** "त्रुटि शून्य सन्दर्भ वस्तु सिर्जना गर्नुहोस्।
 b? = a।  "डाउन कास्टिङ अझै पनि यसको दिने डम्प कल METHOD b->m1( )।
 **************************************************** *************** वस्तु सिर्जना गर्नुहोस् ए।
 प्रयास गर्नुहोस्।
 b? = a।  तपाईंले 'NULL' वस्तु सन्दर्भ डम्प CATCH cx_sy_move_cast_error प्रयोग गर्ने प्रयास गर्नुभयो।
 कल विधि b->m1()।
 प्रयास अन्त्य गर्नुहोस्।
 **************************************************** *************** वस्तु सिर्जना गर्नुहोस् ए।
 वस्तु सिर्जना गर्नुहोस् ख।
 प्रयास गर्नुहोस्।
 b? = a।
 CATCH cx_sy_move_cast_error।
 कल विधि b->m1()।
 कल METHOD b->m2()।
 प्रयास अन्त्य गर्नुहोस्।
 CLASS lcl_shape DEFINITION।
 सार्वजनिक खण्ड।
 METHODS आकर्षित।
 ENDCLASS।
 कक्षा lcl_circle परिभाषा lcl_shape बाट वंशानुगत।
 सार्वजनिक खण्ड।
 विधिहरू: REDEFINITION, calc_area कोर्नुहोस्।
 ENDCLASS।
 CLASS lcl_shape IMPLEMENTATION।
 METHOD ड्र।
 लेख्नुहोस् :/ 'कुनै पनि आकार कोर्दै'।
 ENDMETHOD।
 ENDCLASS।
 CLASS lcl_circle IMPLEMENTATION।
 METHOD ड्र।
 लेख्नुहोस् :/ 'विशिष्ट आकार रेखाचित्र: वृत्त'।
 ENDMETHOD।
 METHOD calc_area।
 लेख्नुहोस् :/ 'Crcle को क्षेत्रफल = 2iiR'।
 ENDMETHOD।
 ENDCLASS।
 स्टार्ट-अफ-चयन।
 डाटा : o_cir TYPE REF TO lcl_circle।
 O_cir वस्तु सिर्जना गर्नुहोस्।
 कल विधि o_cir->draw( )।  "कल सबक्लास ड्र() विधि CALL METHOD o_cir->calc_area( ) लाई कल गर्दछ।
 ULINE।
 "--------- संकीर्ण कास्ट (अपकास्ट)---------------" डाटा: o_shp TYPE REF TO lcl_shape।
 o_shp = o_cir।  " संकीर्ण कास्ट (अपकास्ट) कल विधि o_shp->ड्र ( )।  "कल सब क्लास ड्र () विधि" कल गर्नुहोस् METHOD o_shp->calc_area( )।  " संकलन त्रुटि ULINE।
 "------------ कास्ट फराकिलो (डाउनकास्ट) -----------" डाटा : o_cir1 TYPE REF TO lcl_circle।
 " o_cir1 = o_shp।  " complilation त्रुटि o_cir1 ?= o_shp।  " कास्ट फराकिलो (डाउनकास्ट) कल विधि o_cir1->draw( )।  "कल सबक्लास ड्र() विधि CALL METHOD o_cir1->calc_area( ) लाई कल गर्दछ।
 कक्षा ए १ परिभाषा।
 सार्वजनिक खण्ड।
 डाटा: num1 TYPE i VALUE 100।
 विधिहरू: m1।
 ENDCLASS।
 कक्षा A1 कार्यान्वयन।
 विधि m1।
 लेख्नुहोस्: 'a1:', नम्बर1।
 ENDMETHOD।
 ENDCLASS।
 कक्षा b1 परिभाषा a1 बाट वंशानुगत।
 सार्वजनिक खण्ड।
 METHODS:m2, m1 REDEFINITION।
 ENDCLASS।
 कक्षा b1 कार्यान्वयन।
 विधि m1।
 num1 = num1।
 लेख्नुहोस्: 'b1:', नम्बर1।
 ENDMETHOD।
 विधि m2।
 लेख्नुहोस्: 'कक्षा b2 मा M1'।
 ENDMETHOD।
 ENDCLASS।
 स्टार्ट-अफ-चयन।
 डाटा: अभिभावक TYPE REF TO a1।
 डाटा: बच्चा टाइप रेफ बाट b1।
 *डेटा: c टाइप गर्नुहोस् REF TO c1।
 **************************************************** ************** वस्तु बच्चा सिर्जना गर्नुहोस्।
 अभिभावक = बच्चा।  "अपकास्टिङ कल विधि अभिभावक->m1( )।
 कल विधि बाल->m1()।
 कल विधि बाल->m2()।
 *कल METHOD a->m2()।  "हामी सुपर क्लास रेफ प्रयोग गरेर आफ्नै उप-वर्ग विधिहरू पहुँच गर्न सक्दैनौं।
 नयाँ-लाइन।
 बच्चा? = अभिभावक।  "डाउन कास्टिङ कल विधि बाल->m1( )।
 नयाँ-लाइन।
 कल विधि बाल->m2()।
 **************************************************** ****************** "त्रुटि नल रेफ *बजेट ए सिर्जना गर्नुहोस्।
 *b?= a।  "डाउन कास्टिङ अझै पनि यसको डम्प दिन्छ * कल METHOD b->m1( )।
 **************************************************** ****************** वस्तु सिर्जना गर्नुहोस् ए।
 प्रयास गर्नुहोस्।
 b? = a।  तपाईंले 'NULL' वस्तु सन्दर्भ डम्प CATCH cx_sy_move_cast_error प्रयोग गर्ने प्रयास गर्नुभयो।
 कल विधि b->m1()।
 प्रयास अन्त्य गर्नुहोस्।
 **************************************************** ****************** वस्तु सिर्जना गर्नुहोस् ए।
 वस्तु सिर्जना गर्नुहोस् ख।
 प्रयास गर्नुहोस्।
 b? = a।
 CATCH cx_sy_move_cast_error।
 कल विधि b->m1()।
 कल METHOD b->m2()।
 प्रयास अन्त्य गर्नुहोस्।
 ******** अद्वितीय मान****************** डाटा : lv_string TYPE string, lv_string2 TYPE string, lv_string_final TYPE string।
 TYPES: ty_data को BEGIN, auth TYPE c, ty_data को END।
 डाटा: 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'।
 SPLIT lv_string AT ',' INTO TABLE lt_user।
 SPLIT lv_string2 AT ',' INTO TABLE lt_user2।
 LT_user2 मा LOOP ASSINEING FIELD-SYMBOL( )।
 सम्मिलित गर्नुहोस् INTO TABLE lt_user।
 ENDLOOP।
 SORT lt_user by auth।
 lt_user comparing auth बाट ADJACENT डुप्लिकेटहरू मेटाउनुहोस्।
 IF sy-subrc = 0।
 LT_user ASIGNING FIELD-SYMBOL( )।
 यदि lv_string_final प्रारम्भिक छ।
 lv_string_final = - प्रमाण।
 ELSE।
 CONCATENATE lv_string_final -auth INTO lv_string_final ',' द्वारा अलग गरिएको।
 ENDIF।
 ENDLOOP।
 ENDIF।

 

टिप्पणी छोड्नुहोस्

यो साइट स्प्याम कम गर्न Akismet को उपयोग गर्दछ। जान्नुहोस् कि तपाईंको डेटा कसरी संसाधित छ.