다음 코드의 실행 결과는?

과목: PHP

문제 번호: 3022

medium
다음 코드의 실행 결과는?
<?php
interface Flyable {
    public function fly();
}

class Bird implements Flyable {
    public function fly() {
        echo "Bird flies ";
    }
}

class Airplane implements Flyable {
    public function fly() {
        echo "Airplane flies ";
    }
}

$objects = [new Bird(), new Airplane()];
foreach($objects as $obj) {
    $obj->fly();
}
?>
A. Bird flies Airplane flies
B. Bird flies 만 출력
C. Airplane flies 만 출력
D. 오류 발생

정답: A



이 코드는 인터페이스의 핵심 개념인 다형성(polymorphism)을 보여줍니다.

다형성의 작동 원리:
1. 공통 인터페이스: BirdAirplane 모두 Flyable 인터페이스 구현
2. 동일한 메서드: 둘 다 fly() 메서드를 가짐
3. 다른 구현: 각자의 방식으로 fly() 메서드 구현
4. 통합 처리: 배열에 담아 동일한 방식으로 처리 가능

실행 과정:
$objects 배열에 두 객체 저장
foreach 루프에서 각 객체의 fly() 메서드 호출
⦁ 첫 번째 반복: new Bird()->fly() → "Bird flies " 출력
⦁ 두 번째 반복: new Airplane()->fly() → "Airplane flies " 출력

💡 학습 팁

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