第10章 オブジェクト指向構文 / 第3回 模擬試験
次のコードの実行結果として正しいものはどれか。 ```php abstract class Shape { abstract public function area(): float; } class Circle extends Shape { public function __construct(private float $radius) {} public function area(): float { return 3.14 * $this->radius ** 2; } } $c = new Circle(2); print $c->area(); ```
12.56
正解
6.28
4
エラーが発生する
解説
コンストラクタプロモーション(`private float $radius`)でプロパティが定義され、`area()`は`3.14 * 2 ** 2 = 3.14 * 4 = 12.56`を返します。(参照: 独習PHP 第4版 第10章 オブジェクト指向構文 10.4.1節 抽象メソッド p.514〜515)