오버라이딩 막기

오버라이딩을 할 수 없도록 하는 방법에 대해서 알아 볼게요.
매우 간단합니다. 오버라이딩을 할 수 없도록 할 메소드의 접근제한자 앞에 final 키워드를 사용합니다.

메소드에 final 사용 방법

final 접근제한자 function 메소드명(){}

그럼 앞에서 학습한 오버라이딩 예제를 그대로 사용하고 final키워드를 추가해 볼게요.

<?php

    class GoogleCar
    {
        final public function stateOfTheArtAIDrivingSystem()
        {
            return "구글 AI 드라이빙";
        }
    }

    class Car extends GoogleCar
    {
        public $wheels;
        public $doors = 4;
        protected $color = 4;
        private $size;
        private $company;

        public function stateOfTheArtAIDrivingSystem()
        {
            return "기존 구글 AI 드라이빙에 기능을 더해 모든 차량에 IOT를 활용해 연결하고 차와 인간의 뇌를 연결하여 운전하는 동안 뇌를 정지시켜 인간의 개입없이 사고가 절대 일어 날 수 없는 AI 드라이빙";
        }
    }
    $ever = new Car;
    echo $ever->stateOfTheArtAIDrivingSystem();
?>

위 코드의 결과

final 키워드를 사용하여 오버라이딩을 할 수 없도록 설정했는데 그러한 메소드를 호출하니 오류가 발생하네요. ^^
이렇게 final 키워드에 대해서 알아봤습니다.
final 키워드는 다른 용도로도 사용할 수 있습니다.
클래스의 앞에 사용하면 또 다른 기능을 합니다. 다음에 알아봅시다.