8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

PHP 接口:指定任何可见性

Maxim Danilov 1月前

28 0

我正在使用一组类的接口。但是我遇到了一个问题,因为我希望接口中允许任何可见性(即:公共、受保护和私有)。我需要...

我正在使用一组类的接口。但是我遇到了一个问题,因为我希望 visibility 可见性 public , protected private )。

我需要父方法仅受到保护,而我需要子方法是私有的,但我收到错误消息

致命错误:接口方法 Baz::qux() 的访问类型必须省略.\'

我尝试在界面中指定其他可见性方法 Baz 并删除 public ,但都失败了。

有没有办法通过接口做到这一点?如果没有,那么有没有办法可以声明它 abstract ,我也试过了,但是失败了。

interface Baz
{
    public function qux();
}

class Bar implements Baz
{
    protected function qux()
    {
        //do foo
    }
}

class Foo extends Bar implements Baz
{
    private function qux()
    {
        parent::qux();
    }
}
帖子版权声明 1、本帖标题:PHP 接口:指定任何可见性
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Maxim Danilov在本站《oop》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 接口 中声明的方法 应该是公共的。您定义了与接口的契约。任何非公共方法都是实现细节,它们不属于接口。顾名思义,实现细节应该放在 实现 接口的具体类中。

    来自维基百科:

    接口编程

    使用接口可以实现一种称为面向接口编程的编程风格。这种风格背后的理念是将编程逻辑建立在所用对象的接口上,而不是内部实现细节上。面向接口编程减少了对实现细节的依赖,使代码更具可重用性。[7] 它使程序员能够在以后更改系统的行为,只需将使用的对象与实现相同接口的另一个对象交换即可。

返回
作者最近主题: