บทความ: การใช้งาน Inheritance ใน OOP ด้วยภาษา ABAP
การเขียนโปรแกรมด้วยวิธี Object-Oriented Programming (OOP) ได้เปลี่ยนวิธีการพัฒนาซอฟต์แวร์ให้ก้าวหน้า และ ABAP (Advanced Business Application Programming) ซึ่งเป็นภาษาการเขียนโปรแกรมที่พัฒนาโดย SAP มีศักยภาพในการรองรับแนวคิด OOP ให้กับนักพัฒนา SAP applications.
หลักการ Inheritance, หรือการสืบทอด, เป็นหนึ่งในมุมมองหลักของ OOP ที่ช่วยให้โค้ดของเรามีความยืดหยุ่น สามารถใช้ซ้ำ และง่ายต่อการบำรุงรักษา ด้วยการที่ class ลูก (subclass) สามารถสืบทอด properties และ methods จาก class แม่ (superclass) ได้.
ใน ABAP, การใช้ inheritance ช่วยอำนวยความสะดวกให้กับการพัฒนาแอปพลิเคชัน SAP โดยช่วยลดความซับซ้อนและถ่ายทอดลักษณะที่จำเป็นจากเจเนอเรชันหนึ่งไปยังอีกเจเนอเรชันหนึ่งได้สะดวก.
ต่อไปนี้เป็นตัวอย่างโค้ดที่ใช้ inheritance ใน ABAP:
ตัวอย่างที่ 1: การสร้าง Superclass และ Subclass
CLASS cl_person DEFINITION.
PUBLIC SECTION.
DATA: name TYPE string,
age TYPE i.
METHODS: display_info.
ENDCLASS.
CLASS cl_person IMPLEMENTATION.
METHOD display_info.
WRITE: / 'Name: ', name,
/ 'Age: ', age.
ENDMETHOD.
ENDCLASS.
CLASS cl_employee DEFINITION INHERITING FROM cl_person.
PUBLIC SECTION.
DATA: position TYPE string.
METHODS: display_info REDEFINITION.
ENDCLASS.
CLASS cl_employee IMPLEMENTATION.
METHOD display_info.
" Call the method of the superclass
super->display_info( ).
WRITE: / 'Position: ', position.
ENDMETHOD.
ENDCLASS.
ในตัวอย่างนี้, `cl_employee` คือ subclass ที่สืบทอดมาจาก superclass `cl_person`. การเรียกใช้ `super->display_info( )` ภายใน `cl_employee->display_info` จะทำให้ข้อมูลทั่วไปจาก `cl_person` ถูกแสดงผลก่อน และค่อยตามด้วยรายละเอียดของพนักงาน.
ตัวอย่างที่ 2: การ Override Methods
ในบางครั้ง subclass อาจต้องการเปลี่ยนแปลงการทำงานของ methods ที่สืบทอดมา ซึ่งใน ABAP เราสามารถทำได้ด้วยการใช้ `REDEFINITION`.
METHOD cl_employee->display_info.
WRITE: / 'Employee Information: '.
super->display_info( ).
WRITE: / 'Position: ', position.
ENDMETHOD.
ในตัวอย่างนี้, เราได้ใช้ `REDEFINITION` ในการ override method `display_info` ใน subclass `cl_employee` ในขณะที่ยังคงใช้คำสั่ง `super->display_info()` โดยคำสั่งดังกล่าวจะเรียก method จาก superclass ขึ้นมาทำงานก่อน.
ตัวอย่างที่ 3: Polymorphism กับ Inheritance
Polymorphism เป็นอีกคุณสมบัติหนึ่งใน OOP ที่ทำงานคู่กับ inheritance เพื่อให้ object ที่เป็นต่างดาวสามารถถูกจัดการผ่าน reference ถึง superclass.
DATA: lr_person TYPE REF TO cl_person,
lr_employee TYPE REF TO cl_employee.
CREATE OBJECT lr_employee.
lr_employee->name = 'John Doe'.
lr_employee->age = 30.
lr_employee->position = 'Developer'.
lr_person = lr_employee.
lr_person->display_info(). " This will call cl_employee->display_info
ในตัวอย่างนี้คือการใช้ polymorphism ซึ่ง reference `lr_person` ที่มีชนิดของ superclass กำลังจะถูกจัดการ object จาก subclass.
Use Case ในโลกจริง:
Inheritance ในภาษา ABAP มีประโยชน์มากในสถานการณ์เช่นการสร้างโมดูลซอฟต์แวร์ ERP ที่มีลักษณะการทำงานที่ซับซ้อนแต่มีความคล้ายคลึงกันในหลายๆ ส่วน, เช่น การจัดการข้อมูลของพนักงาน, ลูกค้า, และผู้จัดจำหน่าย ซึ่งล้วนแล้วแต่สามารถมองเห็นแนวความคล้ายของ attributes และ operations ต่างๆ การใช้ inheritance ทำให้เราสามารถสร้าง base class เช่น `cl_business_partner` และให้ subclass เช่น `cl_employee`, `cl_customer` และ `cl_vendor` สืบทอดความสามารถเหล่านั้นไป.
ทั้งหมดนี้คือการใช้งาน inheritance ในภาษา ABAP ที่นอกจากจะเพิ่มประสิทธิภาพในการเขียนโปรแกรมแล้ว ยังช่วยให้โค้ดของเราเป็นระเบียบและง่ายต่อการขยายการทำงานในอนาคต. หากคุณสนใจที่จะเรียนรู้การเขียนโปรแกรม ABAP อย่างลึกซึ้งและต้องการต่อยอดความรู้ในด้าน OOP, ที่ EPT หรือ Expert-Programming-Tutor เรามีหลักสูตรและผู้เชี่ยวชาญที่พร้อมจะนำท่านเข้าสู่โลกแห่งการพัฒนาซอฟต์แวร์ด้วย SAP ABAP อย่างมืออาชีพ. เรียนรู้การเขียนโปรแกรมแบบมีโครงสร้าง มาพร้อมกับตัวอย่างจริงและการวิเคราะห์อย่างมีลำดับตรรกะที่ EPT วันนี้!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: inheritance oop abap programming object-oriented_programming class subclass method superclass polymorphism override code_example use_case sap development
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM