Дочерний класс, делающий унаследованные методы закрытыми

Итак, в основном у меня есть класс B а также Cчей родитель class A,
Class A имеет публичный метод set(), Но я хочу метод set() быть частным в классе B и публика в классе Cтак что вы можете вызвать его из экземпляров класса C и вы не можете назвать это из экземпляров класса B,
Возможно ли это в PHP?

0

Решение

Нет. Теория заключается в том, что вы должны иметь возможность использовать экземпляры подкласса везде, где вы можете использовать экземпляры родителя, не зная, что у вас есть.

Если у класса А есть открытый метод fooЯ должен быть в состоянии позвонить $a->foo() для любого значения, где $a instanceof A правда.

Если подкласс B делает этот метод закрытым, я не могу сделать вызов.

Это причудливое название — принцип замещения Лискова.

Вы, однако, можете сделать так, чтобы метод вел себя так, как вам нравится, например, он может выдать исключение в классе B, но обязательно всегда где-нибудь его перехватывать.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]