5.1 ความหมายของ Polymorphism (พหุสัณฐาน)
5.1 ความหมายของ Polymorphism (พหุสัณฐาน)
Polymorphism หรือ พหุสัณฐาน เป็นแนวคิดในหลักการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming: OOP) ซึ่งหมายถึงความสามารถของวัตถุ (Object) ในการทำงานหลากหลายรูปแบบได้ โดยการใช้เมธอดเดียวกันแต่ให้ผลลัพธ์แตกต่างกันไปตามบริบทของการเรียกใช้งาน
Polymorphism มีสองรูปแบบหลัก คือ
Compile-time Polymorphism (หรือเรียกว่า Method Overloading): เกิดขึ้นระหว่างการคอมไพล์โค้ด
Run-time Polymorphism (หรือเรียกว่า Method Overriding): เกิดขึ้นระหว่างการรันโปรแกรม
Compile-time Polymorphism (หรือ Static Polymorphism):
เกิดขึ้นเมื่อเมธอดหรือฟังก์ชันถูกเลือกใช้ในระหว่างการคอมไพล์
การ Method Overloading (การโอเวอร์โหลดเมธอด) และ Operator Overloading (การโอเวอร์โหลดตัวดำเนินการ) เป็นตัวอย่างของ compile-time polymorphism
เมธอดที่มีชื่อเดียวกันแต่มีพารามิเตอร์ที่แตกต่างกันสามารถใช้งานได้ในโปรแกรม
Runtime Polymorphism (หรือ Dynamic Polymorphism):
เกิดขึ้นเมื่อเมธอดถูกเลือกในระหว่างการรันโปรแกรม
การ Method Overriding (การเขียนทับเมธอด) เป็นตัวอย่างของ runtime polymorphism
เมธอดที่ถูกเขียนทับในคลาสย่อยจะถูกเลือกใช้ตามประเภทของอ็อบเจกต์ที่กำหนดในตอนรันโปรแกรม
ลดความซับซ้อน (Simplicity):
ทำให้โค้ดเรียบง่ายขึ้น เนื่องจากเราสามารถใช้เมธอดที่ชื่อเดียวกันในการจัดการกับอ็อบเจกต์ที่หลากหลายประเภทได้
เพิ่มความสามารถในการขยายโปรแกรมได้ง่าย
เพิ่มความยืดหยุ่น (Flexibility):
สามารถสร้างฟังก์ชันหรือเมธอดที่สามารถทำงานกับอ็อบเจกต์จากหลายๆ คลาสได้
การเขียนโปรแกรมที่รองรับการขยายหรือการเปลี่ยนแปลงได้ง่ายขึ้น
ส่งเสริมการใช้ซ้ำ (Reusability):
สามารถใช้เมธอดที่มีชื่อเดียวกันในหลายๆ คลาส ซึ่งช่วยลดการเขียนโค้ดซ้ำ