我有2个类A和B扩展A. A有一个公共属性,我希望在B的实例中属性不可访问。我试着更好地解释:PHP使类继承可继承
class A
{
public $prop;
}
class B extends A
{
...
}
$instance=new B;
$instance->prop; //This must throw an error like "Undefined property prop"
我试图与final
关键字,但它仅适用于不适合性能的方法。我也尝试在B上设置与private
相同的属性,但PHP不允许将访问级别从公共改为私有或受保护。
也许有一个简单的解决方案,但我找不到它,所以你知道一种方法来做到这一点?
你扩展别人的课程?为什么你不能从源头上解决问题? – erisco 2010-09-30 13:25:53
为什么你想声明一个属性是公共的(即最广泛的可见性),然后拒绝其访问后裔类? – 2010-09-30 13:26:32
我不想让私人公共财产,我希望B不会继承它。我改变了访问级别只是为了找到一个好的解决方案,但它不起作用 – mck89 2010-09-30 13:28:21