วิธีการนามธรรมของ Traits ใน OOP ใน PHP

ใน Traits สามารถประกาศบางวิธีเป็น นามธรรมได้ ในกรณีนี้ คลาสที่ใช้ Trait นี้ จะต้องทำการนำวิธีดังกล่าว ไปใช้ วิธีการนามธรรมของ Trait ไม่สามารถเป็นแบบส่วนตัวได้

ลองดูตัวอย่าง สมมติว่าเรามี Trait ดังต่อไปนี้:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

สมมติว่า Trait ของเราใช้งานโดยคลาส Test การมีวิธีการนามธรรมใน Trait จะบังคับให้ โปรแกรมเมอร์ต้องนำไปใช้ในคลาส มิฉะนั้น จะเกิดข้อผิดพลาด PHP

มาสร้างคลาส Test พร้อมกับ วิธี method2 กัน:

Test.php<?php
  class Test
  {
    use TestTrait; // ใช้ Trait
    
    // นำวิธีการนามธรรมไปใช้:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

คัดลอกโค้ด Trait ของฉัน TestTrait และโค้ดคลาสของฉัน Test ลบ วิธี method2 ออกจาก คลาส ตรวจสอบให้แน่ใจว่า การไม่มีวิธีนี้นำไปใช้จะทำให้เกิด ข้อผิดพลาด PHP