Post クラスに parent::__construct() を書かないのはなぜですか?

詳しく解説していきます。
2021年6月2日
ユーザー

今回のコードでは親クラスが BasePost となっており、子クラスが PostSponsoredPost となっていますが、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 の内容が表示されませんでした。
解説の程よろしくお願いします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(5)