SAP ABAP - Interfaces الواجهات في ساب
SAP ABAP - Interfaces الواجهات في ساب
SAP ABAP - Interfaces الواجهات في ساب
على غرار الفئات في ABAP ، تعمل الواجهات كأنواع بيانات للكائنات. مكونات الواجهات هي نفس مكونات الفئات. على عكس إعلان الفئات ، لا يتضمن إعلان الواجهة أقسام الرؤية. وذلك لأن المكونات المحددة في إعلان الواجهة يتم دمجها دائمًا في قسم الرؤية العامة للفئات.
يتم استخدام الواجهات عندما يكون لفئتين متشابهتين طريقة بنفس الاسم ، لكن الوظائف تختلف عن بعضها البعض. قد تبدو الواجهات مشابهة للفئات ، ولكن يتم تنفيذ الوظائف المحددة في الواجهة في فئة لتوسيع نطاق تلك الفئة. توفر الواجهات جنبًا إلى جنب مع ميزة الوراثة أساسًا لتعدد الأشكال. هذا لأن الطريقة المحددة في الواجهة يمكن أن تتصرف بشكل مختلف في الفئات المختلفة.
فيما يلي التنسيق العام لإنشاء واجهة -
INTERFACE <intf_name>. DATA..... CLASS-DATA..... METHODS..... CLASS-METHODS..... ENDINTERFACE.
في بناء الجملة هذا ، يمثل <intf_name> اسم الواجهة. يمكن استخدام عبارات DATA و CLASSDATA لتعريف سمات المثيل والثابت للواجهة على التوالي. يمكن استخدام عبارات METHODS و CLASS-METHODS لتعريف المثيل والأساليب الثابتة للواجهة على التوالي. نظرًا لأن تعريف الواجهة لا يتضمن فئة التنفيذ ، فليس من الضروري إضافة بند DEFINITION في إعلان الواجهة.
ملاحظة - جميع طرق الواجهة مجردة. تم التصريح عنها بالكامل بما في ذلك واجهة المعلمات الخاصة بها ، ولكن لم يتم تنفيذها في الواجهة. يجب على جميع الفئات التي تريد استخدام واجهة تطبيق جميع أساليب الواجهة. خلاف ذلك ، يصبح الفصل فئة مجردة.
نستخدم الصيغة التالية في جزء التنفيذ من الفصل -
INTERFACE <intf_name>.
في بناء الجملة هذا ، يمثل <intf_name> اسم الواجهة. لاحظ أنه يجب استخدام هذه الصيغة في القسم العام من الفصل.
تُستخدم الصيغة التالية لتنفيذ أساليب واجهة داخل تنفيذ فئة -
METHOD <intf_name~method_m>. <statements>. ENDMETHOD.
في بناء الجملة هذا ، يمثل <intf_name ~ method_m> الاسم المعلن بالكامل لطريقة واجهة <intf_name>.
مثال
Report ZINTERFACE1. INTERFACE my_interface1. Methods msg. ENDINTERFACE. CLASS num_counter Definition. PUBLIC Section. INTERFACES my_interface1. Methods add_number. PRIVATE Section. Data num Type I. ENDCLASS. CLASS num_counter Implementation. Method my_interface1~msg. Write: / 'The number is', num. EndMethod. Method add_number. ADD 7 TO num. EndMethod. ENDCLASS. CLASS drive1 Definition. PUBLIC Section. INTERFACES my_interface1. Methods speed1. PRIVATE Section. Data wheel1 Type I. ENDCLASS. CLASS drive1 Implementation. Method my_interface1~msg. Write: / 'Total number of wheels is', wheel1. EndMethod. Method speed1. Add 4 To wheel1. EndMethod. ENDCLASS. Start-Of-Selection. Data object1 Type Ref To num_counter. Create Object object1. CALL Method object1→add_number. CALL Method object1→my_interface1~msg. Data object2 Type Ref To drive1. Create Object object2. CALL Method object2→speed1. CALL Method object2→my_interface1~msg.
ينتج الكود أعلاه الناتج التالي -
The number is 7 Total number of wheels is 4
في المثال أعلاه ، my_interface1 هو اسم الواجهة التي تحتوي على طريقة "msg". بعد ذلك ، يتم تعريف وتنفيذ فئتين ، num_counter و drive1. كل من هاتين الفئتين تنفذان طريقة 'msg' وأيضًا طرق محددة تحدد سلوك مثيلاتها الخاصة ، مثل أساليب add_number و speed1.
ملاحظة - أسلوب add_number و speed1 خاصان بالفئات المعنية.
التسميات: SAP ABAP Advanced Business Application Programming (برمجة تطبيقات الأعمال المتقدمة) ساب
<< الصفحة الرئيسية