메서드 오버라이딩(Method Overriding)에 대한 설명으로 올바른 것은?

과목: PHP

문제 번호: 3007

medium
메서드 오버라이딩(Method Overriding)에 대한 설명으로 올바른 것은?
<?php
class Fruit {
    public function intro() {
        echo "I am a fruit";
    }
}

class Apple extends Fruit {
    public function intro() {
        echo "I am an apple";
    }
}

$apple = new Apple();
$apple->intro();
?>
A. 부모와 자식의 메서드가 모두 실행되어 "I am a fruitI am an apple" 출력
B. 오류가 발생함
C. 자식 클래스의 메서드만 실행되어 "I am an apple" 출력
D. 부모 클래스의 메서드만 실행되어 "I am a fruit" 출력

정답: C



메서드 오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 기능입니다.

오버라이딩의 작동 원리:

⦁ 같은 이름의 메서드: 부모와 자식에서 동일한 메서드명 사용

⦁ 우선순위: 자식 클래스의 메서드가 부모 클래스의 메서드를 덮어씀

⦁ 완전 대체: 부모의 메서드는 호출되지 않고 자식의 메서드만 실행

⦁ 동적 바인딩: 실제 객체의 타입에 따라 어떤 메서드를 호출할지 결정

실행 결과:

Apple 객체에서 intro() 호출 시 Apple 클래스에 정의된 메서드가 실행되어 "I am an apple"만 출력됩니다.

💡 학습 팁

이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.