0Pricing
PHP Academy · บทเรียน

พหุสัณฐาน

สำรวจการเขียนทับเมธอดและพฤติกรรมแบบไดนามิกในการเขียนโปรแกรมเชิงวัตถุ

พหุสัณฐาน เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 5 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 5 บทเรียน

พหุรูปใน PHP

พหุรูปใน PHP

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

พหุสัณฐาน — ภาพประกอบ 1

พหุรูปคืออะไร

พหุรูปคืออะไร

พหุรูปช่วยให้ออบเจ็กต์มีได้หลายรูปแบบ ใน PHP หมายความว่าเมธอดสามารถทำงานแตกต่างกันได้ ขึ้นอยู่กับออบเจ็กต์ที่เรียกใช้เมธอดนั้น แนวคิดนี้ทำได้ผ่านการเขียนทับเมธอดหรือการนำอินเทอร์เฟซไปใช้งาน

ประเด็นสำคัญ: พหุรูปช่วยให้โค้ดเรียบง่ายและมีความยืดหยุ่นมากขึ้น โดยเปิดให้เมธอดเดียวกันทำงานต่างกันได้ตามบริบท

พหุรูปผ่านการเขียนทับเมธอด

พหุรูปผ่านการเขียนทับเมธอด

เมื่อคลาสลูกเขียนทับเมธอดในคลาสแม่ คลาสลูกจะกำหนดการนำเมธอดนั้นไปใช้งานในแบบของตนเอง ตัวอย่างเช่น:

ประเด็นสำคัญ: การเขียนทับเมธอดช่วยให้คลาสต่าง ๆ กำหนดพฤติกรรมเฉพาะสำหรับเมธอดเดียวกันได้

<?php
  class Animal {
    public function speak() {
      echo "The animal makes a sound.";
    }
  }

  class Dog extends Animal {
    public function speak() {
      echo "The dog barks.";
    }
  }

  class Cat extends Animal {
    public function speak() {
      echo "The cat meows.";
    }
  }

  $animals = [new Dog(), new Cat()];

  foreach ($animals as $animal) {
    $animal->speak();
    echo "<br>";
  }
?>

พหุรูปโดยใช้อินเทอร์เฟซ

พหุรูปโดยใช้อินเทอร์เฟซ

อินเทอร์เฟซกำหนดข้อตกลงให้คลาสนำเมธอดบางอย่างไปใช้งาน ซึ่งทำให้มั่นใจได้ว่าคลาสที่นำอินเทอร์เฟซไปใช้ทุกคลาสจะกำหนดเมธอดที่จำเป็น ตัวอย่างเช่น:

เคล็ดลับ: อินเทอร์เฟซช่วยบังคับใช้ความสอดคล้องกันระหว่างคลาสต่าง ๆ

<?php
  interface Shape {
    public function calculateArea();
  }

  class Circle implements Shape {
    private $radius;

    public function __construct($radius) {
      $this->radius = $radius;
    }

    public function calculateArea() {
      return pi() * pow($this->radius, 2);
    }
  }

  class Rectangle implements Shape {
    private $width, $height;

    public function __construct($width, $height) {
      $this->width = $width;
      $this->height = $height;
    }

    public function calculateArea() {
      return $this->width * $this->height;
    }
  }

  $shapes = [new Circle(5), new Rectangle(4, 6)];

  foreach ($shapes as $shape) {
    echo "Area: " . $shape->calculateArea() . "<br>";
  }
?>

ประโยชน์ของพหุรูป

ประโยชน์ของพหุรูป

พหุรูปมีข้อดีหลายประการ:

  • ส่งเสริมการนำโค้ดกลับมาใช้ใหม่
  • ทำให้โค้ดมีความยืดหยุ่นและขยายขนาดได้มากขึ้น
  • ช่วยให้การเพิ่มคลาสและความสามารถใหม่ ๆ ง่ายขึ้น

ตัวอย่าง: การเพิ่มรูปทรงใหม่จากตัวอย่างก่อนหน้าจำเป็นต้องนำอินเทอร์เฟซ Shape ไปใช้งานและกำหนดเมธอด calculateArea()

พหุรูปกับคลาสนามธรรม

พหุรูปกับคลาสนามธรรม

สามารถใช้คลาสนามธรรมเพื่อทำให้เกิดพหุรูปได้เช่นกัน คลาสลูกจะเขียนทับเมธอดนามธรรมเพื่อกำหนดการนำไปใช้งานเฉพาะของตนเอง ตัวอย่างเช่น:

ประเด็นสำคัญ: คลาสนามธรรมบังคับใช้โครงสร้างพื้นฐานไปพร้อมกับเปิดให้เกิดพหุรูป

<?php
  abstract class Vehicle {
    abstract public function start();
  }

  class Car extends Vehicle {
    public function start() {
      echo "Car engine starts.<br>";
    }
  }

  class Motorcycle extends Vehicle {
    public function start() {
      echo "Motorcycle engine starts.<br>";
    }
  }

  $vehicles = [new Car(), new Motorcycle()];

  foreach ($vehicles as $vehicle) {
    $vehicle->start();
  }
?>

การประยุกต์ใช้ในโลกจริง

การประยุกต์ใช้ในโลกจริง

มีการใช้พหุรูปอย่างแพร่หลายในการพัฒนาซอฟต์แวร์:

  • การประมวลผลการชำระเงิน: วิธีการชำระเงินที่แตกต่างกัน (บัตรเครดิต, PayPal) นำอินเทอร์เฟซเดียวกันไปใช้งาน
  • การพัฒนาเกม: ตัวละครประเภทต่าง ๆ เขียนทับเมธอดเดียวกันเพื่อให้มีพฤติกรรมเฉพาะ
  • ระบบบันทึกข้อมูล: ตัวบันทึกข้อมูลหลายตัว (ไฟล์, ฐานข้อมูล) ใช้อินเทอร์เฟซเดียวกัน

ประเด็นสำคัญ: พหุรูปช่วยสร้างระบบที่ขยายขนาดและดูแลรักษาได้ง่าย

ความท้าทายเมื่อใช้พหุรูป

ความท้าทายเมื่อใช้พหุรูป

แม้พหุรูปจะมีประสิทธิภาพ แต่ก็มาพร้อมกับความท้าทายดังนี้:

  • อาจเพิ่มความซับซ้อนหากนำไปใช้งานไม่ถูกต้อง
  • จำเป็นต้องวางแผนลำดับชั้นของคลาสและอินเทอร์เฟซอย่างรอบคอบ
  • อาจทำให้เกิดข้อผิดพลาดขณะทำงาน หากเมธอดที่เขียนทับไม่ได้รับการนำไปใช้งานอย่างถูกต้อง

เคล็ดลับ: ทดสอบพฤติกรรมแบบพหุรูปอย่างละเอียดเสมอเพื่อให้มั่นใจว่าทำงานได้ถูกต้อง

เยี่ยมมาก!

เยี่ยมมาก!

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

พหุสัณฐาน — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “พหุสัณฐาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พหุสัณฐาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 5 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พหุสัณฐาน”

สำรวจการเขียนทับเมธอดและพฤติกรรมแบบไดนามิกในการเขียนโปรแกรมเชิงวัตถุ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 5 จากทั้งหมด 5 บทเรียน

บทเรียน “พหุสัณฐาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่การเขียนโปรแกรมเชิงวัตถุใน PHP
  2. การกำหนดคลาสและออบเจ็กต์
  3. การสืบทอด
  4. การห่อหุ้มและตัวปรับเปลี่ยนการเข้าถึง
  5. พหุสัณฐาน
← กลับไปที่ PHP Academy