카테고리 없음

[PHP]final에 대하여

SEUNGSAMI 2019. 1. 28. 10:38

final

전에 설명했던 abstract이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제이다. 간단히 말해 실행되는 과정에서 한번 값이 정해진 이후에는 변수내의 값이 바뀌지 않도록 하는 규제이다.   아래의 두개의 예제는 전부 오류가 발생하는 예제이다.
class A{
    final function b(){}
}
class B extends A{
    b(){}
}
위의 예제의 경우 final 메소드인 b를 B클래스에서오버라이딩하려하기 때문에 오류가 발생한다.  
final class C{
    final function b(){}
}
class D extends C{}
이경우에도 마찬가지로. final 클래스인 C를 extends를 통해 상속받으려 하고 있기 때문에 오류가 발생한다.  



배운지 얼마 되자 않은 지식이라 잘못된 부분이 있을 수있습니다. 그러한 것은 댓글로 달아주시면 감사하겠습니다.