प्रस्तावना - यह पोस्ट का हिस्सा है एबीएपी कार्यक्रम श्रृंखला.
कक्षा 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_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 ',' द्वारा अलग किया गया। अगर अंत। एंडलूप। अगर अंत।
0 टिप्पणियाँ