다음 추상 클래스를 상속받는 자식 클래스에서 필수적으로 해야 할 일은?

과목: PHP

문제 번호: 3016

medium
다음 추상 클래스를 상속받는 자식 클래스에서 필수적으로 해야 할 일은?
<?php
abstract class Vehicle {
    public $brand;
    
    abstract protected function startEngine() : string;
    abstract public function getMaxSpeed();
}

class Car extends Vehicle {
    // 여기에 무엇을 구현해야 할까요?
}
?>
A. $brand 속성만 초기화하면 됨
B. startEngine() 메서드만 구현하면 됨
C. startEngine()getMaxSpeed() 메서드 모두 구현해야 함
D. 아무것도 구현하지 않아도 됨

정답: C



추상 클래스를 상속받은 자식 클래스는 모든 추상 메서드를 반드시 구현해야 합니다.

구현해야 할 메서드들:

startEngine() - 반드시 구현 필요
⦁ 접근 제한자: protected 또는 public (같거나 더 개방적)
⦁ 반환 타입: string (동일해야 함)

getMaxSpeed() - 반드시 구현 필요
⦁ 접근 제한자: public (동일)
⦁ 반환 타입: 지정되지 않았으므로 자유

올바른 구현 예시:
class Car extends Vehicle {
    protected function startEngine() : string {
        return "Car engine started";
    }
    
    public function getMaxSpeed() {
        return 200;
    }
}

구현하지 않으면 Fatal Error가 발생합니다.

💡 학습 팁

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