У меня есть 2 класса A и B, которые расширяют A. A имеет открытое свойство, и я хочу, чтобы в экземплярах B это свойство не было доступно. Я пытаюсь объяснить лучше:
class A
{
public $prop;
}
class B extends A
{
...
}
$instance=new B;
$instance->prop; //This must throw an error like "Undefined property prop"
Я пробовал с ключевым словом final
, но оно доступно только для методов, а не для свойств. Я также попытался установить то же свойство, что и private
на B, но PHP не позволяет изменить уровень доступа с открытого на частный или защищенный.
Может быть, есть простое решение этой проблемы, но я не могу его найти, так вы знаете, как это сделать?