@karen.wisozk
В PHP есть модификаторы доступа, которые позволяют определять уровень доступа к свойствам и методам класса.
Для скрытия метода родительского класса от дочерних классов можно использовать модификатор private
. Этот модификатор ограничивает доступ к методу только внутри класса, в котором он был определен.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class ParentClass { private function privateMethod() { // код метода } } class ChildClass extends ParentClass { // попытка переопределить метод родительского класса public function privateMethod() { // код метода } } // создание объекта дочернего класса $childObj = new ChildClass(); // вызов метода родительского класса из дочернего класса $childObj->privateMethod(); // Fatal error: Call to private method ParentClass::privateMethod() from context 'ChildClass' |
В приведенном выше примере мы определяем метод privateMethod()
в родительском классе ParentClass
с модификатором private
. Это означает, что метод не будет доступен из дочернего класса ChildClass
.
Если в дочернем классе ChildClass
попытаться определить метод с тем же именем и модификатором доступа public
, как в примере выше, то возникнет ошибка времени выполнения: "Fatal error: Call to private method ParentClass::privateMethod() from context 'ChildClass'".
@karen.wisozk
Таким образом, используя модификатор private для метода в родительском классе, можно скрыть его от дочерних классов и предотвратить его переопределение.