एबीएपी कार्यक्रम में कास्टिंग

कक्षा a1 परिभाषा।
 सार्वजनिक खंड।
 डेटा: संख्या 1 प्रकार और मूल्य 100।
 तरीके: एम 1।
 अंत वर्ग।
 कक्षा a1 कार्यान्वयन।
 विधि एम1.
 लिखें: 'a1:', num1.
 अंतिम विधि।
 अंत वर्ग।
 कक्षा b1 परिभाषा a1 से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: एम 2, एम 1 पुनर्वितरण।
 अंत वर्ग।
 कक्षा बी1 कार्यान्वयन।
 विधि एम1.
 अंक 1 = अंक 1।
 लिखें: 'बी1:', num1.
 अंतिम विधि।
 विधि एम2.
 लिखें: 'एम2 इन क्लास बी1'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: एक प्रकार का संदर्भ a1.
 डेटा: b टाइप रेफ टू b1.
 *डेटा: c टाइप REF TO c1.
 ************************************************* *************** वस्तु बनाएँ ख।
 ए = बी।  "अपकास्टिंग कॉल मेथड a->m1( )।
 *कॉल विधि a->m2( )।  "हम सुपर क्लास रेफरी का उपयोग करके अपनी उप-वर्ग विधियों तक नहीं पहुंच सकते हैं।
 नई पंक्ति।
 बी? = ए।  "डाउन कास्टिंग कॉल विधि b->m1()।
 नई पंक्ति।
 कॉल विधि b->m2( )।
 ************************************************* *************** "त्रुटि नल रेफरी OBJECT a.
 बी? = ए।  "डाउन कास्टिंग अभी भी इसकी डंपिंग कॉल मेथोड बी-> एम 1 ()।
 ************************************************* *************** ऑब्जेक्ट बनाएं ए।
 कोशिश करो।
 बी? = ए।  "आपने 'नल' ऑब्जेक्ट संदर्भ डंप कैच cx_sy_move_cast_error का उपयोग करने का प्रयास किया।
 कॉल विधि b->m1( )।
 एंडट्री।
 ************************************************* *************** ऑब्जेक्ट बनाएं ए।
 वस्तु बनाएँ ख।
 कोशिश करो।
 बी? = ए।
 कैच cx_sy_move_cast_error.
 कॉल विधि b->m1( )।
 कॉल विधि बी-> एम 2 ()।
 एंडट्री।
 कक्षा lcl_shape परिभाषा।
 सार्वजनिक खंड।
 तरीके ड्रा।
 अंत वर्ग।
 कक्षा lcl_circle परिभाषा lcl_shape से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: REDEFINITION ड्रा करें, कैल्क_एरिया।
 अंत वर्ग।
 कक्षा lcl_shape कार्यान्वयन।
 विधि ड्रा।
 लिखें:/'किसी भी आकार को खींचना'।
 अंतिम विधि।
 अंत वर्ग।
 कक्षा lcl_circle कार्यान्वयन।
 विधि ड्रा।
 लिखें:/'विशिष्ट आकृति बनाना: वृत्त'।
 अंतिम विधि।
 विधि कैल्क_एरिया।
 लिखें:/'Crcle का क्षेत्रफल = 2iiR'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: o_cir टाइप रेफ टू lcl_circle।
 ऑब्जेक्ट बनाएं
 कॉल विधि o_cir-> ड्रा ()।  "उपवर्ग ड्रा() विधि कॉल विधि o_cir->calc_area() कॉल करें।
 यूलाइन।
 "------------संकीर्ण कास्ट(अपकास्ट)---------------" डेटा: o_shp टाइप रेफ टू 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।
 तरीके: एम 1।
 अंत वर्ग।
 कक्षा a1 कार्यान्वयन।
 विधि एम1.
 लिखें: 'a1:', num1.
 अंतिम विधि।
 अंत वर्ग।
 कक्षा b1 परिभाषा a1 से विरासत में मिली है।
 सार्वजनिक खंड।
 तरीके: एम 2, एम 1 पुनर्वितरण।
 अंत वर्ग।
 कक्षा बी1 कार्यान्वयन।
 विधि एम1.
 अंक 1 = अंक 1।
 लिखें: 'बी1:', num1.
 अंतिम विधि।
 विधि एम2.
 लिखें: 'एम2 इन क्लास बी1'।
 अंतिम विधि।
 अंत वर्ग।
 स्टार्ट-ऑफ-सिलेक्शन।
 डेटा: पैरेंट टाइप रेफरी टू a1.
 डेटा: चाइल्ड टाइप रेफ टू b1.
 *डेटा: c टाइप REF TO c1.
 ************************************************* *************** ऑब्जेक्ट चाइल्ड बनाएं।
 माता-पिता = बच्चा।  "अपकास्टिंग कॉल विधि माता-पिता-> एम 1 ()।
 कॉल विधि बच्चे-> एम 1 ()।
 कॉल विधि बच्चे-> एम 2 ()।
 *कॉल विधि a->m2( )।  "हम सुपर क्लास रेफरी का उपयोग करके अपनी उप-वर्ग विधियों तक नहीं पहुंच सकते हैं।
 नई पंक्ति।
 बच्चा? = माता-पिता।  "डाउन कास्टिंग कॉल विधि बच्चे-> एम 1 ()।
 नई पंक्ति।
 कॉल विधि बच्चे-> एम 2 ()।
 ************************************************* **************** *" त्रुटि नल रेफरी * OBJECT बनाएं a.
 * बी? = ए।  "डाउन कास्टिंग अभी भी इसकी दे रही है डंप * कॉल विधि बी-> एम 1 ()।
 ************************************************* **************** * वस्तु बनाएँ a.
 कोशिश करो।
 बी? = ए।  "आपने 'नल' ऑब्जेक्ट संदर्भ डंप कैच cx_sy_move_cast_error का उपयोग करने का प्रयास किया।
 कॉल विधि b->m1( )।
 एंडट्री।
 ************************************************* **************** * वस्तु बनाएँ a.
 वस्तु बनाएँ ख।
 कोशिश करो।
 बी? = ए।
 कैच cx_sy_move_cast_error.
 कॉल विधि b->m1( )।
 कॉल विधि बी-> एम 2 ()।
 एंडट्री।
 ******** अद्वितीय मान****** डेटा: lv_string TYPE string, lv_string2 TYPE string, lv_string_ final TYPE string।
 प्रकार: ty_data का प्रारंभ, प्रमाणन प्रकार c, ty_data का अंत।
 डेटा: ls_user TYPE ty_data, ls_user2 TYPE ty_data, lt_user2 ty_data की टाइप टेबल, lt_user ty_data की टाइप टेबल।
 lv_string = 'ए, बी, सी, ए'।
 lv_string2 = 'डी, बी, सी, ए'।
 स्प्लिट lv_string एटी ',' टेबल में lt_user.
 स्प्लिट lv_string2 एटी ',' टेबल में lt_user2.
 lt_user2 असाइनमेंट फील्ड-सिंबल पर लूप ( )
 सम्मिलित करें तालिका में lt_user.
 एंडलूप।
 प्रमाणीकरण के आधार पर lt_user को सॉर्ट करें।
 lt_user COMPARING auth से आसन्न डुप्लिकेट हटाएं।
 अगर sy-subrc = 0.
 lt_user असाइन करने वाले FIELD-SYMBOL पर लूप ( )
 अगर lv_string_ final प्रारंभिक है।
 lv_string_ final = -प्रमाण.
 अन्यथा।
 CONCATENATE lv_string_ final -ऑथ में lv_string_ final ',' द्वारा अलग किया गया।
 अगर अंत।
 एंडलूप।
 अगर अंत।

 

एक टिप्पणी छोड़ें

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.