클래스 앞에 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();
class ParentClass {
final function b() {
echo 'parent B';
}
}
ChildClass extends ParentClass { // 여기서 에러 발생
function b(){
echo 'child b';
}
}
$obj = new ChildClass(); // 여기까지 못옴
$obj->a();