processPost()でBasePost型にしているのはなぜですか?

2020年6月21日
ユーザー

お世話になっております。
以下のコードで質問があります。

function processPost(BasePost $post) 
{
  $post->show();
}

なぜ、processPostの引数の型をBasePost型にしたのでしょうか?

PostやSponsoredPost型であれば、抽象メソッドの中身が書かれているのでshowメソッドが実行されるということに違和感がありませんが、BasePostは抽象メソッドのままです。それでどうして、showメソッドがprocessPostの中で実行されるのでしょうか?

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?