특성
PHP는 단일 상속만 지원한다.
자식 클래스는 한 부모로부터만 상속할 수 있다.
그렇다면 클래스가 여러 동작을 상속해야 하는 경우 어떻게 해야 할지 알아보자.
OOP 특성은 이 문제를 해결한다.
특성은 여러 클래스에서 사용할 수 있는 메서드를 선언하는 데 사용된다.
특성에는 여러 클래스에서 사용할 수 있는 메서드와 추상 메서드가 있을 수 있으며 메서드에는 모든 액세스 한정자(공개, 비공개 또는 보호)가 있을 수 있다.
특성은 trait 키워드로 선언한다.
trait TraitName { // 코드 입력 } class MyClass { use TraitName; }
이런식으로 입력한다.
예시
예시를 통해 공부하자.
PHP
<?php trait message1 { public function msg1() { echo "OOP is fun! "; } } class Welcome { use message1; } $obj = new Welcome(); $obj->msg1(); ?>
기본 예시
OOP is fun!다중 특성 사용
PHP
<?php trait message1 { public function msg1() { echo "OOP is fun! "; } } trait message2 { public function msg2() { echo "OOP reduces code duplication!"; } } class Welcome { use message1; } class Welcome2 { use message1, message2; } $obj = new Welcome(); $obj->msg1(); echo "
"; $obj2 = new Welcome2(); $obj2->msg1(); $obj2->msg2(); ?>
기본 예시
OOP is fun!OOP is fun! OOP reduces code duplication!
참고
W3C School - PHP OOP - Traits
W3C School - PHP Tryit Editor