0

在 php 中,我可以实现一个比指定函数签名更严格的接口吗?

例如:

interface iChangeHandler{
    public function update($new, $old);
    }

class NoteChangeHandler implements iChangeHandler
{
    public function update(Note $new, Note $old)
    {
    //does stuff
    }
}

作为替代方案,我可以检查类或实例,只是想知道我是否可以这样做。

4

1 回答 1

1

不,你不能,因为实现的签名必须与声明的原型完全匹配。所以你不能使用更窄的参数限制。这很RTM,实际上:

笔记:

实现接口的类必须使用与接口中定义的完全相同的方法签名。不这样做会导致致命错误。

于 2013-09-30T14:26:56.133 回答