การพ้องรูป(Polymorphsim)

wave
มานพ กองอุ่น 24 ก.ค. 2016 23:00:28 11,497

หลักการของการพ้องรูป(Polymorphism) คือการกำหนดให้คลาส(Class) มี พฤติกรรม(Method) ชื่อเหมือนกัน โดยสามารถกำหนดได้ 2 แบบ คือ Abstract และ Interface

Interface เป็นการกำหนดคลาส(Class) และ พฤติกรรม(Method) ที่ไม่มีตัว(Body) เวลานำไปใช้งานจะต้องทำการ implement interface 

ตัวอย่าง Interface

<?php
interface Car
{
    public function Run();
}

class Toyota implements Car
{
    private $gear;
    private $hispeed;

    public function __construct($g, $h)
    {
        $this->gear = $g;
        $this->hispeed = $h;
    }
    public function Run()
    {
        return $this->gear.' เกียร์ ความเร็วสูงสุด'.$this->hispeed;
    }
}

class Honda implements Car
{
    private $wheel;
    private $hispeed;

    public function __construct($w, $h)
    {
        $this->wheel = $w;
        $this->hispeed = $h;
    }
    public function Run()
    {
        return $this->wheel.' ล้อ ความเร็วสูงสุด'.$this->hispeed;
    }
}

$toyota = new Toyota(5, 250);
$honda = new Honda(4, 280);

echo $toyota->Run();//5 เกียร์ ความเร็วสูงสุด250
echo $honda->Run();//4 ล้อ ความเร็วสูงสุด280


Abstract เป็นการกำหนด โครงสร้างของพฤติกรรม(Method) โดยคลาส(Class) ที่สืบทอดต้องกำหนด body ให้แก่ Abstract Method

<?php
abstract class Car
{
    //บังคับให้ class ที่สืบทอดต้องมี method นี้
    abstract public function Run();

    // method ปกติ
    public function getRun()
    {
        return $this->Run();
    }
}

class Toyota extends Car
{
    public function Run()
    {
        echo 'Toyota';
    }
}

class Honda extends Car
{
    public function Run()
    {
        echo 'Honda';
    }
}

$toyota = new Toyota();
echo $toyota->getRun(); //Toyota

$honda = new Honda();
echo $honda->getRun();//Honda

 


ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com

เขียนบทเรียนรู้ของคุณ

รายละเอียด
  • ดู 11,497
  • รักเลย 0
  • หมวดหมู่ PHP Object Oriented Programming (OOP)
  • เขียนเมื่อ
  • แก้ไขเมื่อ
  • Tags php polymorphism
ข้อมูลผู้เขียน
มานพ กองอุ่น

มานพ กองอุ่น

เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009