PHP 객체 지향 프로그래밍에서 트레이트의 추상 메서드

트레이트에서는 일부 메서드를 추상적으로 선언할 수 있습니다. 이 경우, 해당 트레이트를 사용하는 클래스는 반드시 그러한 메서드를 구현해야 합니다. 이때 트레이트의 추상 메서드는 비공개(private)일 수 없습니다.

예제를 통해 살펴보겠습니다. 다음과 같은 트레이트가 있다고 가정해 보세요:

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

이 트레이트가 Test 클래스에서 사용된다고 가정해 봅시다. 트레이트에 추상 메서드가 있으면 프로그래머는 클래스에서 이를 구현해야 하며, 그렇지 않으면 PHP 오류가 발생합니다.

method2 메서드와 함께 Test 클래스를 만들어 보겠습니다:

Test.php<?php
  class Test
  {
    use TestTrait; // 트레이트 사용
    
    // 추상 메서드 구현:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

제 트레이트 TestTrait의 코드와 제 클래스 Test의 코드를 복사하세요. 클래스에서 method2 메서드를 삭제하세요. 그 구현이 없을 때 PHP 오류가 발생하는지 확인하세요.