Доступ к родительским свойствам и переопределенным методам в PHP

Различие заключается в так называемом «псевдоклассическом и прототипном наследовании». Предлагаем использовать только один тип в вашем коде, не смешивая их.

В псевдоклассическом наследовании (с оператором «new») представьте, что вы сначала определяете псевдокласс, а затем создаете объекты из этого класса. Например, определите псевдокласс "Person", а затем создайте "Alice" и "Bob" из "Person".

В наследовании прототипа (используя Object.create) вы непосредственно создаете конкретного человека «Алису», а затем создаете другого человека «Боба», используя «Алису» в качестве прототипа. Здесь нет «класса»; все являются объектами.

Внутренне JavaScript использует «прототипное наследование»; «псевдоклассический» путь - это просто немного сахара.

См. эту ссылку для сравнения двух способов.

6
задан Austin Hyde 29 June 2009 в 13:21
поделиться

2 ответа

Хорошо, проблема заключалась в том, что методы были фактически объявлены частными, а не общедоступными, как в моем сообщении, что привело к тому же симптому, что и свойство $ data.

0
ответ дан 10 December 2019 в 00:43
поделиться

Вы объявили данные закрытыми, поэтому ChildObj не сможет получить к ним доступ - вместо этого вам нужно сделать его защищенным:

protected $data;

My PHP (5.2 .8) выводит ChildObj :: method () - у вас установлена ​​более старая версия?

10
ответ дан 10 December 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: