Вопрос с наследованием

Kuzya

Новичок
Вопрос с наследованием

Всем хай. У меня есть 3 класса, например a, b и c. Нужно сделать класс d который наследовал бы функции от всех этих трёх классов. Подскажите как это оформить.
 

Sluggard

Новичок
Kuzya
Каждый из классов a, b, c имеет метод do_something(). Метод какого класса унаследует класс d при множественном наследовании?
 

korchasa

LIMB infected
Re: Вопрос с наследованием

Автор оригинала: Kuzya
Всем хай. У меня есть 3 класса, например a, b и c. Нужно сделать класс d который наследовал бы функции от всех этих трёх классов. Подскажите как это оформить.
Пока никак. Ждем PHP6. Надеемся, что traits примут.
 

Alexandre

PHPПенсионер
У меня есть 3 класса, например a, b и c. Нужно сделать класс d который наследовал бы функции от всех этих трёх классов. Подскажите как это оформить.
используй не наследование а делегирование.
 

Kuzya

Новичок
Каждый из классов a, b, c имеет метод do_something(). Метод какого класса унаследует класс d при множественном наследовании?
Дело в том что классы a,b и с имеют разные методы.
 

Fred

Новичок
Автор оригинала: triumvirat
это как?
PHP:
class a {
    
    function funcFromA() {}
}

class b {

    function funcFromB() {}
}


class c {
    /**
    * @var a
    */
    private $a;
    /**
    * @var b
    */
    private $b;

    function a() {
        $this->a->funcFromA();
    }

    function a() {
        $this->b->funcFromB();
    }
}
 

Sluggard

Новичок
Fred
В скольки случаях из скольки твой пример не выдаст фатальной ошибки?
 

dr-sm

Новичок
Kuzya есть наследование интерфейса, есть наследование реализации.
в перовом случае используешь interface'ы,
во втором, делегирование.
 

Духовность™

Продвинутый новичок
Это как-нибудь так
Шаблон делегирования. http://ru.wikipedia.org/wiki/Делегирование
Объясните пожалуйста, зачем в самом последнем примере на PHP на данной странице используется класс TEmployeeList ? Я так понимаю, исключительно для примера делегирования? Ведь все эти методы можно было же реализовать в классе TObjectList!

-~{}~ 03.03.08 20:38:

а. все. понял.

концептуализм внутри )
 

weregod

unserializer
вообще-то имеет место быть код, имплементирующий множественное наследование (ещё на php4), но целесообразность его использования весьма сомнительна, особенно в высоконагруженных системах ;)
 

zerkms

TDD infected
Команда форума
особенно в высоконагруженных системах
слово "высоконагруженных", я так понимаю, нужно произносить с таинственным придыханием?
а если серьёзно - то код под php4 в студию + аргументацию по поводу нагруженных систем
 

WP

^_^
Вообще-то множественное наследование надо хотеть.
Например
PHP:
class ..._query {}
class ..._query_mysql extends ..._query {}
class ..._mysql_insert extends ..._query_mysql {}
А насчет doSomething всё просто, последний использованный класс имеет приоритет.
Насчет traits не понял зачем это нужно когда достаточно extends.
 

HraKK

Мудак
Команда форума
WP
Ты не в теме. Покури что такое множественое наследование.
 

weregod

unserializer
Автор оригинала: zerkms
слово "высоконагруженных", я так понимаю, нужно произносить с таинственным придыханием?
а если серьёзно - то код под php4 в студию + аргументацию по поводу нагруженных систем
да, с придыханием, в моем случае множественное наследование последний раз надобилось в очень узком месте
находил года три назад в сети, после неудачного собеседа, где мне был задан вопрос "а есть ли оно в PHP:"
 
Сверху