class — Должен ли я (и если да, как я могу лучше всего) обеспечить частный абстрактный как метод в php?

Ищете немного руководства здесь.

Я знаю, что закрытые методы не являются полиморфными, и поэтому нет смысла делать из них абстрактные функции, но я хочу каким-то образом обеспечить, чтобы дочерний класс базового класса всегда объявлял закрытый метод.

Я делаю что-то не так или это нормально? Я знаю, что вы не можете использовать множественное наследование, поэтому, возможно, вам нужны черты, но я не знаю, смогу ли я применить их в Php.

Я думал, может быть, у меня может быть абстрактный базовый класс, у которого есть абстрактный защищенный метод, и тогда этот класс будет окончательным, так как функция должна быть защищена? Единственным недостатком является то, что я мог пойти дальше с этим, хотя.

Я просто хочу, чтобы у дочернего класса всегда был базовый метод, к которому может обращаться только он, но я не уверен, как это сделать, не сделав его окончательным.

РЕДАКТИРОВАТЬ:

Контекст ситуации: у меня есть дочерние классы, которые похожи на весы, которые наследуют от базового реферата, которые выполняют проверку типов (потому что php динамический), а также хотят сделать окончательную проверку для требуемых переменных. Каждый дочерний класс должен делать это и делать это одинаково, но он должен вызываться чем-то другим.

РЕДАКТИРОВАТЬ Идея:

Я думал, что мог бы просто написать интерфейс для базового класса с функцией для выполнения финальной функции (в данном случае рендеринга), а внутри функции я мог бы вызвать проверку ошибок. Проблема в том, что я не мог получить доступ к новым атрибутам, которые я недавно создал в расширенных функциях, потому что функция базового класса не знала бы о них. Тогда я застрял бы в том, чтобы поместить их в массив или что-то такое, что в любом случае побеждает цель создания дочернего класса. Кроме того, если бы я это сделал, я не мог быть уверен, что функция не будет переопределена, не сделав ее окончательной, чтобы я больше не мог расширять ее. Идк здесь. Пожалуйста, помогите, если у вас есть идеи.

2

Решение

Задача ещё не решена.

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

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

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