Inheritance การสืบทอดคุณสมบัติจากคลาสอื่นในภาษา PHP

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

pataponnew
PHP Hero Member
PHP Hero Member
โพสต์: 152
ลงทะเบียนเมื่อ: 03/05/2021 10:18 am

Inheritance การสืบทอดคุณสมบัติจากคลาสอื่นในภาษา PHP

โพสต์ที่ยังไม่ได้อ่าน โดย pataponnew »

การสืบทอดคุณสมบัติจากคลาสอื่นหรือ Inheritance นั้นคือการคลาสๆนึงสามารถสืบทอดคุณสมบัติ(Property)หรือตัวเเปร(Method)มาจากคลาสหลักได้
โดยผมจะตัวอย่างการ Inheritance โดยใช้คลาส นก จาก บทความ การสร้างClassในภาษาPHP นะครับ

โค้ด: เลือกทั้งหมด


  class Bird
  {
    public $Color="Blue";
    public $Size="Big";
    public $Feather="Short";
  
    public function fly()
    {
      echo "I am fly";
    }
    public function run()
    {
      echo "I am run";
    }
    public function sing()
    {
      echo "do re mi fa sol la ti do";
    }
  }
ถ้าเกิดเราต้องการสร้างobjectนกตัวใหม่โดยต้องการจะเพิ่มสามารถว่ายได้ด้วย เราก็ไม่จำเป็นจะต้องเขียนโค้ดสร้างobjectนกใหม่ทั้งหมดนะครับ เเต่ใช้การ Inheritance เพื่อสืบทอดคุณสมบัติ(Property)หรือตัวเเปร(Method)จากคลาสนกตัวเดิม โดยใช้ คำสั่ง extend ดังโค้ดข้างล่าง

โค้ด: เลือกทั้งหมด

class newBird extends Bird
{

    public function swim()
  {
    echo "I am swim";
  }
}
โดยเมื่อเราเรียกใช้งานฟังก์ชั่นในคลาส newBird เราจะสามารถใช้งานฟังก์ชั่นในคลาส Bird ได้ด้วยดังโค้ดข้างล่างครับ

โค้ด: เลือกทั้งหมด

$a=new newBird;
$a->fly();
echo "<br>";
$a->run();
echo "<br>";
$a->sing();
echo "<br>";
$a->swim();
โดยผลการรันโค้ดจะเเสดงออกมาดังนี้ครับ
bandicam 2021-05-09 23-23-02-680.jpg
bandicam 2021-05-09 23-23-02-680.jpg (13.05 KiB) Viewed 802 times
ซึ่งจะเห็นว่าเราเรียกใช้เเค่คลาส newBird เเต่เราสามารถเรียกใช้งานฟังก์ชั่นใน ทั้งในคลาส newBirdเเละคลาส Bird ได้ทั้งหมดเลยครับ
ประโยชน์ของการ Inheritance นั้นจะช่วยลดความซ้ำซ้อนของโค้ดเมื่อเราต้องการเพิ่มรายละเอียดจากคลาสเดิมทำให้เราไม่ต้องเขียนโค้ดหลายบรรทัดครับ
อ้างอิง
https://www.tamemo.com/post/123/all-about-oop-2-inheritance/
http://programmingbright.com/blog/?p=42
https://qathai.com/722838/PHP:-%E0%B8%82%E0%B8%AD%E0%B8%9A%E0%B9%80%E0%B8%82%E0%B8%95%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B9%81%E0%B8%9B%E0%B8%A3%E0%B9%83%E0%B8%99-OOP?
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 71