是的,我知道,那个头衔是满口的:)
代码将使这种方式更容易消化:
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}}类型提示?
答案 0 :(得分:0)
有没有办法确保......
您可以将绝对路径添加到类型化类:
public function addFoo(\AbstractLevel\ConcreteLevel\Foo $foo)
我目前对关键字abstract
,
你可能需要把它放在第一堂课:
abstract class Bar
{
public abstract function addFoo(Foo $foo)