happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.

상속 막기

앞에서 오버라이딩을 할 수 없도록 하는 방법에 대해서 알아봤습니다.
오버라이딩을 할 수 없도록 할 메소드의 접근제한자 앞에 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키워드에 대해서 알아봤습니다.


봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준