# Polymorphism คืออะไร? มีประโยชน์อย่างไร? ใช้งานตอนไหน? อธิบายแบบง่ายที่สุด
พอจะนึกถึงคำว่า "Polymorphism" หรือในภาษาไทยเรียกว่า “ภาษาแห่งความหลากหลาย” หลายๆ คนอาจจะเริ่มรู้สึกหนักหัว เพราะดูเหมือนจะเป็นคำศัพท์ที่ซับซ้อน แต่เดี๋ยวนะ ถ้าเราอธิบายถูกวิธี แม้แต่เด็กอายุ 8 ขวบก็เข้าใจได้!
คิดว่านะ ถ้าเราเป็นนักแสดง แล้วเราสามารถแสดงได้หลายบทบาท ตัวอย่างเช่น วันนี้เราแสดงเป็นแม่มด พรุ่งนี้เราแสดงเป็นนักสืบ และวันต่อมาเราแสดงเป็นนักบิน นั่นคือการที่เราสวมบทบาทได้หลายแบบหรือ "Poly" (หลาย) "morphism" (รูปแบบ) นั่นเอง
ในโลกของการเขียนโปรแกรม การใช้งาน Polymorphism ก็ทำงานในลักษณะเดียวกัน คือมันช่วยให้ตัวแปรหรือวัตถุสามารถปรับเปลี่ยนและทำงานได้หลายรูปแบบ
Polymorphism มีประโยชน์มากในแง่ของการทำให้โค้ดเรานั้นได้รับความยืดหยุ่นมากขึ้น ทำให้การเขียนโปรแกรมเป็นเรื่องที่ง่ายและสวยงามขึ้น ยกตัวอย่างเช่น เรามีฟังก์ชันทำงานย่อยๆ หลายอันที่สามารถรับพารามิเตอร์ที่มีหลายชนิด หมายความว่าเราไม่จำเป็นต้องเขียนฟังก์ชันใหม่ทุกครั้งที่มีการใช้งานชนิดข้อมูลที่ต่างกัน
เราจะใช้ Polymorphism เมื่อเราต้องการให้โค้ดของเรามีการใช้งานที่หลากหลายและสามารถนำไปต่อยอดได้ นอกจากนั้นยังช่วยลดการซ้ำซ้อนของโค้ด เพราะเราสามารถใช้โค้ดเดียวกันในการจัดการกับวัตถุที่มีลักษณะที่เหมือนแต่สวมบทบาทที่ต่างกันได้
ตัวอย่างง่ายๆ สมมติว่าเรามีชั้นเรียนที่สอนศิลปะ พร้อมกับนักเรียนที่ต้องการเรียนรู้หลากหลายวิชา ซึ่งครูสามารถสอนวาดรูป ปั้นดินเหนียว หรือเขียนโปรแกรม Polymorphism ช่วยให้ครูสาไดใช้วิธีการสอนเดียวกันในการสอนกิจกรรมที่ต่างกันนั่นเอง
ลองมาดูโค้ดภาษา Java ที่แสดงให้เห็นถึง Polymorphism:
class Animal {
void makeSound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Bark bark");
}
}
class Cat extends Animal {
void makeSound() {
System.out.println("Meow meow");
}
}
public class TestPolymorphism {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();
Animal myCat = new Cat();
myAnimal.makeSound(); // Prints "Some sound"
myDog.makeSound(); // Prints "Bark bark"
myCat.makeSound(); // Prints "Meow meow"
}
}
ในตัวอย่างนี้, `Dog` และ `Cat` คือการสืบทอดคลาส `Animal` และทั้งสองได้เปลี่ยนทิศทางเสียง (override) ของเสียงทำได้ตามลักษณะของพวกมัน นี่คือ Polymorphism ใช้งานได้จริง ได้แก่ เมื่อเราเรียก `makeSound()`, แม้ว่าตัวแปรจะอยู่ในชนิด `Animal`, นักแสดงของ `Dog` และ `Cat` สามารถแสดง `makeSound()` แบบของพวกเขาเองได้
เท่าที่เราเห็น การเรียนรู้ Polymorphism ในโปรแกรมไม่ได้ยากเกินไป และมันเป็นทักษะพื้นฐานที่น่าสนใจสำหรับการเขียนโค้ดที่ดีและมีคุณภาพ ถ้าคุณรู้สึกสนใจที่จะทำความเข้าใจและฝึกฝนการเขียนโปรแกรมแบบหลายรูปแบบหรืออยากรู้ว่ายังมีอะไรเจ๋งๆ ในโลกการเขียนโปรแกรมอีกบ้าง โรงเรียนสอนการเขียนโปรแกรม EPT พร้อมเสมอที่จะตอบทุกคำถามและช่วยให้คุณพัฒนาทักษะของคุณได้!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM