다음 코드에서 자식 클래스의 메서드 시그니처가 올바른 것은?
다음 코드에서 자식 클래스의 메서드 시그니처가 올바른 것은?
<?php
abstract class DataProcessor {
abstract protected function processData($data, $format);
}
class JSONProcessor extends DataProcessor {
// 어떤 메서드 시그니처가 올바를까요?
}
?>
정답: C
추상 메서드를 구현할 때는 특정 규칙을 따라야 하며, 3번이 유일하게 모든 조건을 만족합니다.
추상 메서드 구현 규칙:
1. 접근 제한자: 같거나 더 개방적이어야 함
⦁ 부모:
protected
→ 자식: protected
또는 public
2. 필수 매개변수: 개수와 순서가 동일해야 함
⦁ 부모:
$data, $format
→ 자식: 동일한 2개 필수3. 선택적 매개변수: 추가 가능
⦁ 자식에서
$options = []
같은 기본값 매개변수 추가 허용올바른 구현:
public function processData($data, $format, $options = []) {
// 구현 코드
}
💡 학습 팁
이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.