다음 코드의 실행 결과는?
다음 코드의 실행 결과는?
<?php
abstract class Shape {
abstract public function calculateArea();
}
class Circle extends Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function calculateArea() {
return 3.14 * $this->radius * $this->radius;
}
}
$shape = new Shape(); // 이 라인의 결과는?
$circle = new Circle(5);
echo $circle->calculateArea();
?>
정답: C
추상 클래스는 직접 객체를 생성할 수 없으므로 Fatal Error가 발생합니다.
오류 발생 지점:
⦁
$shape = new Shape();
- 추상 클래스 직접 인스턴스화 시도⦁ 오류 메시지: "Cannot instantiate abstract class Shape"
⦁ 실행 중단: 이 라인에서 스크립트가 중단되므로 이후 코드는 실행되지 않음
추상 클래스의 제약사항:
⦁ 직접 객체 생성 불가
⦁ 반드시 자식 클래스를 통해서만 사용 가능
⦁ 자식 클래스에서 모든 추상 메서드를 구현해야 함
올바른 사용법:
// $shape = new Shape(); // 이 라인 제거
$circle = new Circle(5); // 이것만 가능
echo $circle->calculateArea(); // 78.5 출력
💡 학습 팁
이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.