استهل - هذا المنشور جزء من برامج ABAP سلسلة.
تعريف الفئة A1. القسم العام. البيانات: العدد 1 النوع الأول القيمة 100. الطرق: م 1. التصنيف النهائي. تنفيذ الفئة a1. طريقة m1. اكتب: 'a1:'، num1. نهاية. التصنيف النهائي. وراثة تعريف الفئة ب 1 من أ 1. القسم العام. الطرق: م 2 ، م 1 إعادة تعريف. التصنيف النهائي. تنفيذ الفئة ب 1. طريقة m1. عدد 1 = عدد 1. اكتب: 'b1:'، num1. نهاية. طريقة m2. اكتب: "M2 في الفئة b1". نهاية. التصنيف النهائي. بدء الاختيار. البيانات: نوع المرجع إلى a1. البيانات: نوع المرجع إلى b1. * البيانات: نوع c REF TO c1. **************************************************** ************** إنشاء كائن ب. أ = ب. "upcasting CALL METHOD a-> m1 (). * استدعاء METHOD a-> m2 (). "لا يمكننا الوصول إلى طرق الفئة الفرعية الخاصة باستخدام مرجع الفئة الفائقة. خط جديد. ب؟ = أ. "down casting CALL METHOD b-> m1 (). خط جديد. طريقة الاتصال b-> m2 (). **************************************************** *************** "خطأ فارغ المرجع إنشاء كائن أ. ب؟ = أ. "down casting لا يزال يعطي استدعاء تفريغ METHOD b-> m1 (). **************************************************** *************** إنشاء كائن أ. يحاول. ب؟ = أ. "حاولت استخدام مرجع كائن 'NULL' تفريغ CATCH cx_sy_move_cast_error. طريقة الاتصال b-> m1 (). نهاية. **************************************************** *************** إنشاء كائن أ. إنشاء كائن ب. يحاول. ب؟ = أ. CATCH cx_sy_move_cast_cast. طريقة الاتصال b-> m1 (). استدعاء METHOD b-> m2 (). نهاية. تعريف الفئة lcl_shape. القسم العام. طرق الرسم. التصنيف النهائي. CLASS lcl_circle تعريف الوراثة من lcl_shape. القسم العام. الطرق: رسم REDEFINITION ، calc_area. التصنيف النهائي. تنفيذ فئة lcl_shape. طريقة الرسم. اكتب: / "رسم أي شكل". نهاية. التصنيف النهائي. تنفيذ CLASS lcl_circle. طريقة الرسم. اكتب: / "رسم شكل محدد: دائرة". نهاية. طريقة calc_area. اكتب: / "منطقة Crcle = 2iiR". نهاية. التصنيف النهائي. بدء الاختيار. البيانات: o_cir TYPE REF TO lcl_circle. إنشاء كائن o_cir. طريقة الاتصال o_cir-> ارسم (). "استدعاء الفئة الفرعية Draw () طريقة CALL METHOD o_cir-> calc_area (). أولين. "--------- Narrow cast (Upcast) ---------------" DATA: o_shp TYPE REF TO lcl_shape. o_shp = o_cir. "Cast Narrow cast (Upcast) CALL METHOD o_shp-> draw (). "استدعاء طريقة الرسم من الفئة الفرعية" استدعاء METHOD o_shp-> calc_area (). "خطأ في الترجمة ULINE. "---------- توسيع Cast (Downcast) -----------" DATA: o_cir1 TYPE REF TO lcl_circle. "o_cir1 = o_shp. "خطأ الإكمال o_cir1؟ = o_shp. "توسيع المصبوب (أسفل) CALL METHOD o_cir1-> draw (). "استدعاء الفئة الفرعية Draw () طريقة CALL METHOD o_cir1-> calc_area (). تعريف الفئة A1. القسم العام. البيانات: العدد 1 النوع الأول القيمة 100. الطرق: م 1. التصنيف النهائي. تنفيذ الفئة a1. طريقة m1. اكتب: 'a1:'، num1. نهاية. التصنيف النهائي. وراثة تعريف الفئة ب 1 من أ 1. القسم العام. الطرق: م 2 ، م 1 إعادة تعريف. التصنيف النهائي. تنفيذ الفئة ب 1. طريقة m1. عدد 1 = عدد 1. اكتب: 'b1:'، num1. نهاية. طريقة m2. اكتب: "M2 في الفئة b1". نهاية. التصنيف النهائي. بدء الاختيار. البيانات: الأصل TYPE REF TO a1. البيانات: نوع الطفل REF TO b1. * البيانات: نوع c REF TO c1. **************************************************** ************** إنشاء كائن طفل. الوالد = الطفل. "upcasting CALL METHOD parent-> m1 (). طريقة استدعاء الطفل-> m1 (). طريقة استدعاء الطفل-> m2 (). * استدعاء METHOD a-> m2 (). "لا يمكننا الوصول إلى طرق الفئة الفرعية الخاصة باستخدام مرجع الفئة الفائقة. خط جديد. طفل؟ = الوالدين. "downing CALL METHOD child-> m1 (). خط جديد. طريقة استدعاء الطفل-> m2 (). **************************************************** **************** * "خطأ فارغ المرجع * إنشاء كائن أ. * ب؟ = أ. "down casting ما زال يعطي تفريغه * استدعاء METHOD b-> m1 (). **************************************************** ****************** * إنشاء كائن أ. يحاول. ب؟ = أ. "حاولت استخدام مرجع كائن 'NULL' تفريغ CATCH cx_sy_move_cast_error. طريقة الاتصال b-> m1 (). نهاية. **************************************************** ****************** * إنشاء كائن أ. إنشاء كائن ب. يحاول. ب؟ = أ. CATCH cx_sy_move_cast_cast. طريقة الاتصال b-> m1 (). استدعاء METHOD b-> m2 (). نهاية. ******** القيم الفريدة ******************** البيانات: سلسلة lv_string TYPE ، سلسلة lv_string2 TYPE ، سلسلة lv_string_final TYPE. الأنواع: بداية ty_data ، auth النوع c ، نهاية ty_data. البيانات: ls_user TYPE ty_data، ls_user2 TYPE ty_data، lt_user2 TYPE TYPE OF ty_data، lt_user TYPE TYPE TY_data. lv_string = 'أ ، ب ، ج ، أ'. lv_string2 = 'د ، ب ، ج ، أ'. SPLIT lv_string AT '،' INTO TABLE lt_user. SPLIT lv_string2 AT '،' INTO TABLE lt_user2. LOOP AT lt_user2 تعيين حقل الرمز ( ). إدراج في الجدول lt_user. الحلقة النهائية. فرز lt_user حسب المصادقة. احذف التكرارات الضيقة من lt_user مقارنة المصادقة. إذا كان sy-subrc = 0. LOOP AT lt_user تعيين حقل الرمز ( ). إذا كانت lv_string_final أولية. lv_string_final = -عث. آخر. CONCATENATE Lv_string_final -auth INTO lv_string_final منفصل بواسطة '،'. إنهاء إذا. الحلقة النهائية. إنهاء إذا.
0 تعليقات