如果方法是在抽象类中编写的,我应该使用哪种自返回类型?

时间:2018-08-22 19:00:22

标签: php inheritance abstract-class

我有一个抽象类,它带有自返回的设置方法及其子类:

abstract class AbstractFoo
{
    private $bar;

    public function setBar(string $bar): self
    {
        $this->bar = $bar;
        return $this;
    }
}

class Foo extends AbstractFoo
{
}

我创建并设置变量:

$foo = (new Foo())->setBar('bar1');                  // No warning
$foo = (new Foo())->setBar('bar1')->setBar('bar2');  // Warning

此代码有效,但是PHPStorm提示警告,因为setBar()返回AbstractFoo,而不是Foo。如何用此提示解决问题?

0 个答案:

没有答案