今回のコードでは親クラスが BasePost
となっており、子クラスが Post
と SponsoredPost
となっていますが、Post
には construct
の宣言がされていない状態でメソッド内で $text
を用いています。一方 SponsoredPost
では construct
で、
parent::__construct($text, $sponsor);
上記のように書かれていますが、Post
でその宣言が必要無い理由が分かりません。
class SponsoredPost extends BasePost
{
private $sponsor;
public function __construct($sponsor)
{
$this->sponsor = $sponsor;
}
public function show()
{
printf('%s by %s' . PHP_EOL, $this->text, $this->sponsor);
}
}
上記のようにコードを変更して実行したところ、$this->text
の内容が表示されませんでした。
解説の程よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?