happy cat image

everdevel

Web Technology, 에버디벨

EEOS

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

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

오버라이딩

오버라이딩에 대해서 알아 볼게요.
말은 어렵지만 간단해요.
부모클래스가 가진 메소드를 자식클래스에서 기능을 재정의하거나 기능을 더하는것을 의미해요.
즉 부모클래스의 hello()라는 메소드가 있을 때 자식 클래스에서 같은 이름의 메소드 hello()를 생성하여 사용하는것입니다.

<?php

    class GoogleCar
    {
        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();
?>

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

위의 방식을 오버라이딩이라고 합니다.
부모클래스의 메소드와 이름을 동일시하여 기능을 재정의합니다.
같은 메소드명이라면 부모 클래스가 아닌 자식 클래스의 메소드를 불러오는 것을 알 수 있습니다.

위 코드의 결과

만약, 어떠한 메소드가 정말 중요한 기능으로 누군가 오버라이딩 할 수 없도록 하고 싶을 수 있습니다.
다음에는 오버라이딩을 할 수 없도록 만드는 방법에 대해 알아보겠습니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준