happy cat image

everdevel

Web Technology, 에버디벨

UI 변경

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

상속 막기

앞에서 오버라이딩을 할 수 없도록 하는 방법에 대해서 알아봤습니다.
오버라이딩을 할 수 없도록 할 메소드의 접근제한자 앞에 final 키워드를 사용했죠.
클래스를 선언할 때 final을 사용하면 상속을 못하게 합니다.

클래스에 final 사용 방법

final class 클래스명{}

그럼 예제를 통해서 알아 봅시다.

<?php

    final class GoogleCar
    {

    }

    class Car extends GoogleCar
    {
        public function hello()
        {
            return 'hello';
        }
    }
    $ever = new Car;
    echo $ever->hello();

?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

위의 코드는 final을 사용하여 GoogleCar를 상속할 수 없도록 했습니다.
그런데 Car클래스가 상속을 받고 있네요.
그래서 오류가 발생합니다.

위 코드의 결과

위 코드에서 final을 지우면 상속을 허용하므로 오류가 발생하지 않습니다.

<?php

    class GoogleCar
    {

    }

    class Car extends GoogleCar
    {
        public function hello()
        {
            return 'hello';
        }
    }
    $ever = new Car;
    echo $ever->hello();

?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

위 코드의 결과

이렇게 final키워드에 대해서 알아봤습니다.

강좌로 돌아가기