我有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