gpt4 book ai didi

php - 为什么在扩展 protected 类变量并将其标记为私有(private)后会得到 "Access Level must be protected or weaker"?

转载 作者:行者123 更新时间:2023-12-04 12:14:29 24 4
gpt4 key购买 nike

abstract class AbstractController
{
protected $repository;
}

class GraphController extends AbstractController
{
private $repository;
}

我收到此错误:

Fatal error: Access level to GraphController::$repository must be protected or weaker



为什么?这背后的理论是什么?在某种程度上,当我扩展一个类时,我可以对类属性(即公共(public))具有较弱的访问级别,这感觉是错误的,因为我在某种程度上暴露了父类意味着更受限制的变量......

最佳答案

这是继承的规则。您可以使继承成员的可见性变弱(更可见),但不能隐藏更多。因此,您可以将其设为 protected 或公开。理由是您不应该能够从基类中隐藏成员,或者使成员的可见度低于基类作者的预期。添加到,是的,带走,不。

关于php - 为什么在扩展 protected 类变量并将其标记为私有(private)后会得到 "Access Level must be protected or weaker"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com