PHP:在一个具体类的继承方法中键入提示类的最佳方法是什么'父母班?

时间:2014-09-30 14:58:47

标签: php oop inheritance

是的,我知道,那个头衔是满口的:)

代码将使这种方式更容易消化:

namespace AbstractLevel;    

abstract class Bar 
{
    public function addFoo(Foo $foo)
    {
        $this->foo = $foo;
    }
}

namespace AbstractLevel\ConcreteLevel;

class Bar extends \AbstractLevel\Bar
{
    public function addFoo(Foo $foo)
    {
        parent::addFoo($foo);
    }
}

上面的代码在实例化AbstractLevel\ConcreteLevel\Bar类时应该收到运行时通知,因为addFoo()方法是针对不同类的类型提示而不是其同名的父方法。

有没有办法确保课程AbstractLevel\ConcreteLevel\Bar::addFoo()而不是AbstractLevel\ConcreteLevel\Foo的{​​{1}}类型提示?

1 个答案:

答案 0 :(得分:0)

  

有没有办法确保......

您可以将绝对路径添加到类型化类:

public function addFoo(\AbstractLevel\ConcreteLevel\Foo $foo)

我目前对关键字abstract

不是100%肯定

你可能需要把它放在第一堂课:

abstract class Bar 
{
    public abstract function addFoo(Foo $foo)