Abstract classes หรือ คลาสแบบนามธรรม ในภาษา PHP คือ คลาสที่ไม่สามารถสร้างออบเจ็คได้โดยตรง แต่ใช้สำหรับเป็นแม่แบบให้กับคลาสอื่นๆ (subclass)
ประโยชน์ของ Abstract classes:
- ช่วยให้โค้ดมี modularity
- ช่วยให้โค้ดมี reusability
- ช่วยให้โค้ดมี polymorphism
- ช่วยให้โค้ดมี testability
การใช้ Abstract classes:
- กำหนด class โดยใช้คำสงวน
abstract
- กำหนด method โดยไม่ต้องมี implementation
- subclass ที่สืบทอด abstract class จำเป็นต้องมี implementation ของ method ทั้งหมดที่ abstract class กำหนด
ตัวอย่าง:
PHP
abstract class Animal {
abstract public function makeSound();
}
class Dog extends Animal {
public function makeSound() {
echo "Woof!";
}
}
class Cat extends Animal {
public function makeSound() {
echo "Meow!";
}
}
// ไม่สามารถสร้างออ object ของ abstract class ได้
// $animal = new Animal();
$dog = new Dog();
$dog->makeSound(); // แสดง: Woof!
$cat = new Cat();
$cat->makeSound(); // แสดง: Meow!
ข้อควรระวัง:
- Abstract classes ไม่สามารถสร้างออ object ได้
- Abstract classes ไม่สามารถมี implementation ของ method
แหล่งข้อมูล:
- PHP.net: https://www.php.net/manual/en/language.oop5.php