Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Множественное наследование в php
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Всем привет!
Вопрос к гуру PHP.
Меня интересует пример реализации множественного наследования в php?
Как реализовать множественное наследование? И при этом, естественно, что бы не было минусов. В сети множество примеров, но некоторые, по словам знатоков, имеют минусы.
Вот, как этот например: http://blog[dot]kron0s[dot]com/multiple-inheritance-php
А вот минусы:
Цитата:
схема не дает ответа на вопрос, как делать примесь (я (автор цитаты) не называю это множественным наследованием, так как оно таковым не является) с уже существующим класом?
Второе - при такой реализации уже невозможно скрыть методы, объявленные как private - их все равно можно будет вызвать из потомка. Это может стать серьезной проблемой, если есть пересечение пространства имен (вот кстати еще один неявный минус), либо же есть необходимость скрыть реализацию чего-либо от потомков.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Тема эта очень интересная.
Но полноценную замену множественному наследованию без его поддержки в самом языке не найти. Можно попытаться заменить это примесью.
Предлагаю свой вариант, лишенный недостатков, что есть в примере в первом сообщении темы (там не указано явно, но та цитата за моим авторством).
- очевидно, не нужны никакие модификации классов Foo и Bar, чтобы можно было провести наследование, кроме того, соблюдено правило о недоступности приватных методов классов-родителей (защищенные доступны, так как это солюдается и при обычном наследовании)
Этот пример реализации множественного наследования будет работать только в PHP 5.4
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 27 Марта, 2012 - 14:42:11
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.