PHP 객체 지향 프로그래밍에서 트레이트의 추상 메서드
트레이트에서는 일부 메서드를 추상적으로 선언할 수 있습니다. 이 경우, 해당 트레이트를 사용하는 클래스는 반드시 그러한 메서드를 구현해야 합니다. 이때 트레이트의 추상 메서드는 비공개(private)일 수 없습니다.
예제를 통해 살펴보겠습니다. 다음과 같은 트레이트가 있다고 가정해 보세요:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
이 트레이트가 Test 클래스에서 사용된다고 가정해 봅시다.
트레이트에 추상 메서드가 있으면 프로그래머는 클래스에서 이를
구현해야 하며, 그렇지 않으면 PHP 오류가 발생합니다.
method2 메서드와 함께 Test 클래스를 만들어 보겠습니다:
<?php
class Test
{
use TestTrait; // 트레이트 사용
// 추상 메서드 구현:
public function method2()
{
return 2;
}
}
new Test;
?>
제 트레이트 TestTrait의 코드와
제 클래스 Test의 코드를 복사하세요.
클래스에서 method2 메서드를 삭제하세요.
그 구현이 없을 때 PHP 오류가 발생하는지 확인하세요.