PHP final Class : Override(덮어쓰기) 금지

|

요약

클래스 앞에 final 을 붙이게 되면 부모 함수, 변수의 덮어쓰기 하는 것을 금지합니다.
덮어쓰기를 Override 라고 불립니다.

사용법

final class ParentClass {
  function a() {
    echo 'parent';
  }
  function b() {
    echo 'parent B';
  }
}

class ChildClass extends ParentClass { // 여기서 에러 발생
  function a(){
    echo 'child';
  }
  function b(){
    echo 'child b';
  }
}

$obj = new ChildClass();
$obj->a(); 

  • FATAL ERROR Class ChildClass cannot extend final class ParentClass on line number 12

final function

class ParentClass {
  final function b() {
    echo 'parent B';
  }
}

ChildClass extends ParentClass {  // 여기서 에러 발생
  function b(){
    echo 'child b';
  }
}

$obj = new ChildClass(); // 여기까지 못옴
$obj->a(); 

  • FATAL ERROR Cannot override final method ParentClass::b() on line number 16

참조

  • https://opentutorials.org/module/6/15767

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다