PHP: Abstract Class

Web Development

PHP: Abstract Class

ในบทความนี้จะเป็นการอธิบายเกี่ยวกับ Abstract Class ในภาษา PHP

มากกว่า 1 ปีที่ผ่านมา

1 min read

Abstract Class จะเปรียบเสมือนพิมพ์เขียวที่ไม่สามารถสร้าง Object เหมือน Class แบบปกติได้ เราจำเป็นที่จะต้องสร้าง Class มาเพื่อสืบทอดด้วยคำสั่ง extends อีกที

ถึงตรงนี้อาจจะสงสัยว่าทำไมไม่สร้าง Class แบบปกติเลยหละ โดยทั่วไปมักจะใช้ Abstract Class เพื่อเป็นข้อกำหนดใน Class ที่สืบทอดจะต้อง Override Method ใดบ้างเพื่อให้ Class ที่สืบทอดสามารถใช้งานได้

ตัวอย่าง Abstract Class

abstract class Animal {
  abstract public function makeSound();
 
  public function eat() {
    echo "Eating";
  }
}

โดยใน Abstract class จะมี Method ที่เป็น abstract เหมือนกัน ซึ่งจะไม่ได้กำหนดค่าอะไรไว้ Class ที่สืบทอดจำเป็นที่จำเป็น Override Method นี้เพื่อให้ Class ที่สืบทอดสามารถใช้งานได้

ตัวอย่างการสืบทอด Abstract Class

class Cat extends Animal {
  public function makeSound() {
    echo "Meow 🐈";
  }
}

จะเห็นว่าเรากำหนดค่าแค่ Method makeSound() เท่านั้น ส่วน Method eat() สามารถใช้ได้เลย

ตัวอย่างการใช้งาน Abstract Class

เมื่อเราสร้าง Object ขึ้นมาจะเห็นว่า Method makeSound() จะถูก Override และ Method eat() สามารถใช้งานได้เลย

$cat = new Cat();
$cat->makeSound(); // Meow
$cat->eat(); // Eating

Tags:

PHP