Polymorphism หรือ พหุสัณฐาน เป็นคุณสมบัติของภาษาโปรแกรมเชิงวัตถุ (OOP) ที่ช่วยให้สามารถใช้โค้ดเดียวกันกับวัตถุ (Object) ประเภทต่าง ๆ ได้
ประเภทของ Polymorphism:
- Overloading: การใช้ชื่อฟังก์ชันเดียวกันกับพารามิเตอร์ต่าง ๆ
- Overriding: การใช้ชื่อฟังก์ชันเดียวกันกับพารามิเตอร์เดียวกันในคลาสลูก
Overloading:
PHP
class Animal {
public function makeSound() {
echo "I am an animal.";
}
}
class Dog extends Animal {
public function makeSound() {
echo "Woof!";
}
}
class Cat extends Animal {
public function makeSound() {
echo "Meow!";
}
}
$animal = new Animal();
$animal->makeSound(); // แสดง: I am an animal.
$dog = new Dog();
$dog->makeSound(); // แสดง: Woof!
$cat = new Cat();
$cat->makeSound(); // แสดง: Meow!
Overriding:
PHP
class Animal {
public function makeSound() {
echo "I am an animal.";
}
}
class Dog extends Animal {
public function makeSound() {
echo "Woof!";
}
}
$animal = new Animal();
$animal->makeSound(); // แสดง: I am an animal.
$dog = new Dog();
$dog->makeSound(); // แสดง: Woof!
ข้อควรระวัง:
- Polymorphism ทำให้โค้ดมีความซับซ้อน
- จำเป็นต้องเข้าใจกลไกการทำงานของ Polymorphism
แหล่งข้อมูล:
- W3Schools: https://irinagyurjinyan.wordpress.com/2022/04/12/%D1%83%D1%80%D0%BE%D0%BA-19/
- PHP.net: https://www.php.net/manual/en/language.oop5.php