Запрет наследования метода класса в PHP

147
15 января 2020, 18:50

Для запрета наследования целого класса в PHP есть ключевое слово final:

final class Test
{
}

Тоже самое ключевое слово можно применять в отношении методов класса:

class Test
{
   final public function test_echo()
   {
   }
}

Но в этом случае final запрещает лишь переопределение метода. Возможно ли также запретить наследование метода, при этом не делая его private, чтобы он также был доступен из экземпляра класса? Предположим я хочу расширить определенный класс, добавив в него один метод и сохранить свойства, но большинство других методов в этом классе нельзя использовать.

Answer 1

Наследование в программировании подразумевает расширение функционала (не обязательно, конечно, "сужение" иногда тоже имеет место быть). Мы можем добавить в классы-наследники новые свойства и методы, но не имеем возможности удалить что-то, определенное в классе-родителе. Максимум что мы можем сделать, это определить метод или свойство как приватное, но это просто сделает его не доступным у классов-предков.

READ ALSO
Связь OneToMany в Doctrine

Связь OneToMany в Doctrine

Использую SymfonyОпределил вот такую связь

163
Отображение базы данных с помощью Java Script (Ajax)

Отображение базы данных с помощью Java Script (Ajax)

Требуется помощь в решении вопроса, касающегося запросов в базу данных и их отображения на html страницеЕсть запрос с двумя параметрами :p1 и :p2, эти...

132
Laravel обрезание текса в php с сохранением слов

Laravel обрезание текса в php с сохранением слов

как вывести из базы с обрезанием по символам, желательно слова не отрезать

101
Подключение двух таблиц к одному .php

Подключение двух таблиц к одному .php

Проблема в том что у меня в БД mysql имеется 2 таблицы,и мне надо как-то одновременно из этих таблиц выводить значения

109