PHPでインターフェースを使用した場合の型の指定について、ご質問があります
こちらQiita記事にてインターフェースについて調べていたのですが、getNotification
メソッドの返り値の型の指定に、Notificationインターフェースが指定されていましたが、型の指定にはMailNotifierなどのクラス名ではなく継承しているインターフェース名も使用できるという認識であっておりましたでしょうか。
php
1 2class NotificationGetting 3{ 4 private $notificationType 5 6 public function __construct(string $notificationType) 7 { 8 $this->notificationType = $notificationType; 9 } 10 11 public function getNotification(): Notification 12 { 13 if ($this->notificationType === 'Mail') { 14 return new MailNotifier(); 15 } else if ($this->notificationType === 'Slack') { 16 return new SlackNotifier(); 17 } 18 } 19} 20 21// 使用する側 22public function 通知を送る(Notification $notification) 23{ 24 $notification->メッセージをセットする('こんにちは'); 25 $notification->メールを送信する(); 26} 27 28 29$getting = new NotificationGetting('Mail'); 30通知を送る($getting->getNotification());
こちらの疑問点につきまして、どなたかご回答頂けましたら幸いです
※追記
返り値にインターフェースを実装したクラス名の指定ではなく、インターフェースを型として指定する目的としては、返り値にインターフェースが実装されていることを保証する的な意味で指定するような感じなのでしょうか。
少々曖昧な聞き方となってしまい申し訳ないのですが、こちらの疑問点にも可能でありましたらご助言頂けましたら幸いです

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/14 03:03
2022/12/14 03:17
2022/12/14 05:35
2022/12/14 05:56