소개
최종 사용 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