よろしくお願いいたします。
phpリファレンスを読んでいて不明な表記がありましたので、ご質問させてください。
対象のページは以下です。
ページは「共変性と反変性」について記述されており、かなり難解だったので、
理解が困難でしたが、今回の質問事項は共変性と反変性についてではなく、
リファレンスの例の中での表記についてご質問させてください。
質問の前提となるコードを記述させていただきます。
php
1abstract class Animal 2{ 3 protected string $name; 4 5 public function __construct(string $name) 6 { 7 $this->name = $name; 8 } 9 10 abstract public function speak(); 11} 12 13class Dog extends Animal 14{ 15 public function speak() 16 { 17 echo $this->name . " barks"; 18 } 19} 20 21class Cat extends Animal 22{ 23 public function speak() 24 { 25 echo $this->name . " meows"; 26 } 27}
この後なのですが.....
php
1interface AnimalShelter 2{ 3 public function adopt(string $name): Animal; 4}
インターフェースにて関数の定義を行なっておりますが、
関数内の文末にある、コロンの後のAnimalは何を意味しているのでしょうか。
このような表記はいまだみたことがなく、Animalの前の引数内の型宣言Stringはわかるのですが、、、
抽象クラス名がAnimalですので、メソッドの引数などでみる型宣言でAnimalを
使用しているのであれば、まだわかる気もするのですが。
リファレンスでは同じインターフェースを継承した別クラスにおいて同名のメソッド
があるので、差別化をするために表記しているのかもしれませんが、よくわかりませんでした。
アドバイスなどいただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー