Polymorphism ในภาษา PHP

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

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

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

Polymorphism ในภาษา PHP

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

Polymorphism คือ คุณสมบัติที่ทำให้การทำงานของออบเจ็กต์หนึ่งมีได้หลายรูปแบบ คือการที่คลาสลูกที่เปลี่ยนเเปลงการใช้งานฟังก์ชั่นที่สืบทอดมาจากคลาสเเม่โดยไม่ต้องเปลี่ยนเเปลงคลาสเเม่
จะยกตัวอย่างให้เห็นภาพนะครับ สัตว์ต่างๆสามารถเคลื่อนที่ได้เเต่ ว่าสัตว์เเต่ละชนิดจะทำการเคลื่อนที่ไม่เหมือนกันนะครับ เช่น หมาเดิน กบกระโดด นกบิน ปลาว่ายน้ำ
ทั้ง หมา,กบ,นก เเละ ปลา คือสัตว์ที่สามารถเคลื่อนที่ได้ เเต่ว่าลักษณะการเคลื่อนที่ไม่เหมือนกันครับ
ยกตัวอย่างโค้ดการใช้ Polymorphism ครับ

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

<?php
class Moving
{
function move()
{
  echo "I am Moving";
}
}
class Dog extends Moving
{

  function move()
  {
  echo "I am Runing";
  }
}
class Frog extends Moving
{

  function move()
  {
  echo "I am Jumping";
  }
}
class Fish extends Moving
{

  function move()
  {
  echo "I am Swiming";
  }
}
$a = new Moving;
$b = new Dog;
$c = new Frog;
$d = new Fish;

$a->move();
echo "<br>";
$b->move();
echo "<br>";
$c->move();
echo "<br>";
$d->move();
 ?>
โดยผลการรันโค้ดจะเเสดงออกมาดังนี้ครับ
ผลการรันโค้ด
ผลการรันโค้ด
bandicam 2021-05-10 02-05-28-960.jpg (14.09 KiB) Viewed 993 times
จากโค้ดจะเห็นได้ว่ามีการประกาศคลาสเเม่ชื่อว่า Moving เเละมี method ที่ชื่อว่า move ที่จะเเสดงข้อความ"I am Moving"ออกมา เเต่ว่าฟังก์ชั่น move ที่ถูกประกาศโดยคลาสลูกที่สืบทอดกลับเเสดงข้อความเเตกต่างจากฟังก์คลาสเเม่ทั้งๆที่เรียกใช้ฟังก์ชั่นmoveที่สืบทอดมาจากคลาสเเม่ทั้งหมด

ประโยชน์ของ Polymorphism คือ function ต่างๆไม่จำเป็นต้องเขียนใหม่เลยครับไม่ว่าจะเขียนclassออกมามากมายขนาดไหน เราก็สามารถเเก้ไขการทำงานของฟังก์ชั่นได้โดยที่ไม่ต้องยุ่งกับโค้ดเก่าๆที่ใช้งานอยู่ครับ
อ้างอิง
https://programmerthailand.com/tutorial/view/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%A3%E0%B8%B9%E0%B8%9B%28polymorphsim%29/169
http://computer2know.blogspot.com/2016/08/polymorphism.html
https://www.sites.google.com/site/comchula/home/lesson-9-polymorphism
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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