상속 막기
앞에서 오버라이딩을 할 수 없도록 하는 방법에 대해서 알아봤습니다.
오버라이딩을 할 수 없도록 할 메소드의 접근제한자 앞에 final 키워드를 사용했죠.
클래스를 선언할 때 final을 사용하면 상속을 못하게 합니다.
클래스에 final 사용 방법
final class 클래스명{}
그럼 예제를 통해서 알아 봅시다.
<?php final class GoogleCar { } class Car extends GoogleCar { public function hello() { return 'hello'; } } $ever = new Car; echo $ever->hello(); ?>
위의 코드는 final을 사용하여 GoogleCar를 상속할 수 없도록 했습니다.
그런데 Car클래스가 상속을 받고 있네요.
그래서 오류가 발생합니다.
위 코드의 결과
위 코드에서 final을 지우면 상속을 허용하므로 오류가 발생하지 않습니다.
<?php class GoogleCar { } class Car extends GoogleCar { public function hello() { return 'hello'; } } $ever = new Car; echo $ever->hello(); ?>
위 코드의 결과
이렇게 final키워드에 대해서 알아봤습니다.