ประโยชน์ของ Abstract class มีไว้สำหรับเป็นแม่แบบให้ให้คนอื่นมาใช้เพื่อพัฒนาโค้ดของเรา ดังนั้นฟังก์ชั่นใน Abstract class คือส่วนที่คลาสลูกที่สืบทอดจะต้องมาเติมเต็ม
ยกตัวอย่างการสร้าง Abstract class นะครับ
โค้ด: เลือกทั้งหมด
<?php
abstract class Animal
{
abstract public function howtoMove();
public function move()
{
"I am moving"
}
}
class Fist extends Animal
{
function howtoMove()
{
echo "Swim";
}
}
class Tiger extends Animal
{
function howtoMove()
{
echo "Run";
}
}
class Bird extends Animal
{
function howtoMove()
{
echo "Fly";
}
}
?>
ผมให้ฟังก์ชั่น move เป็น abstract method ของคลาส Animal เนื่องจากสัตว์สามารถเคลื่อนที่ได้ เเต่วิธีการเคลื่อนที่ไม่เหมือนกัน ดังนั้นจึงเป็นหน้าที่ของคลาสลูก
ที่จะมาเติมเต็ม method นี้ครับโดยจะเห็นว่าเราจะเขียนการทำงานของฟังก์ชั่นเเล้วเเต่เราจะกำหนดได้เลยในคลาสลูกที่สืบทอด
อ้างอิง
https://presstige.io/p/class-object-PHP-ddf8dbfe28b6409389f1a102435a4fa5
http://www.amplysoft.com/knowledge/Interface%20Class%20%E0%B8%81%E0%B8%B1%E0%B8%9A%20Abstract%20Class%20%E0%B9%81%E0%B8%95%E0%B8%81%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3.html