型を継承することの具体的なメリットを知りたい

2020年8月15日
ユーザー

プロパティやクラスの継承については利用シーンやメリットをイメージできるのですが、
オブジェクト型の継承は具体的なメリットが思いつかないため、もう少し詳しく教えていただけますでしょうか。

また、型付けに関しても「string型」や「int型」といったオブジェクト型以外の型については、
declareによる厳密な型指定によって不要な値を拒否したり、フォームの入力値のチェックなど、
具体例が想像できますが、オブジェクト型の型付けに関してはまだイメージがつきません。

たとえば、コードの39行目からの下記の箇所は、

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

Post型を指定していますが、
あえて型を指定せず

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

としても処理結果は同じだったため、シンプルなコードにするために省略しても良いのではと考えてしまいました。

それとも「想定したオブジェクト型のみ許可し、それ以外は拒否する」といった状況があるのでしょうか。
たとえば、コードの39行目からの箇所を下記に変更するとエラーになりました。

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

動画の説明に「クラスを継承したクラスをたくさん作ったとしても、こちらのコードを変更することなく、まとめて処理することができるというメリットがあります。」とありますが、もう少し具体例を教えていただけると大変助かります。

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

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