소개
최종 사용 PHP 클래스의 인스턴스 메소드 정의에서 키워드는 자식 클래스에 의해 재정의되는 것을 방지합니다. 마찬가지로 클래스 자체의 정의에 final이 사용되면 해당 클래스를 확장할 수 없습니다.
구문
final class myclass {} class myclass{ final method mymethod(){} }
최종 방법 예
다음 예에서 최종 방법을 재정의하려고 시도하면 오류가 발생합니다.
예시
<?php class parentclass{ final function test(){ echo "final method in parent class"; } } class childclass extends parentclass{ function test(){ echo "overriding final method in parent class"; } } $obj=new childclass(); $obj->test(); ?>
출력
출력은 다음과 같은 오류 메시지를 보여줍니다.
PHP Fatal error: Cannot override final method parentclass::test() in line 16
최종 수업 예시
마찬가지로 다음 예제와 같이 최종 클래스는 상속될 수 없습니다.
예시
<?php final class parentclass{ final function test(){ echo "final method in parent class"; } } class childclass extends parentclass{ function test(){ echo "overriding final method in parent class"; } } $obj=new childclass(); $obj->test(); ?>
출력
출력은 다음과 같은 오류 메시지를 보여줍니다.
PHP Fatal error: Class childclass may not inherit from final class (parentclass) in line 16