LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

так и не понял, что значит «надо чтобы в X делалось A,D»

В класс X надо добавить код, который будет работать для классов E,F,G но не будет работать для классов H,J,K. Сами эти классы в свою очередь наследуются от Y или Z.

вы можете переопределить метод на любом уровне и сделав его пустым или таким как вам требуется

И как будет работать код из Y или Z, если я его полностью переопределю?

что впрочем не мешает выстраивать 2-3х уровневое наследование

Оно уже на 3-м уровне не работает.

и решать этим 80% потребностей переиспользования кода.

И что делать с остальными 20% кода? Пастить?

множественное наследование

Даже если есть, то что? Таким же образом есть методы в X которые должны работать F (наследование x->y->z->f) и не должны в Е. В общем случае всё выродится к тому, что у тебя будут классы из одного метода, где-то отдельно структура и ты будешь всё это множественно сношать, а твой код будет на 80% состоять из объявлений классов.

Исходная версия crutch_master, :

так и не понял, что значит «надо чтобы в X делалось A,D»

В класс X надо добавить код, который будет работать для классов E,F,G но не будет работать для классов H,J,K. Сами эти классы в свою очередь наследуются от Y или Z.

вы можете переопределить метод на любом уровне и сделав его пустым или таким как вам требуется

И как будет работать код из Y или Z, если я его полностью переопределю?

что впрочем не мешает выстраивать 2-3х уровневое наследование

Оно уже на 3-м уровне не работает.

и решать этим 80% потребностей переиспользования кода.

И что делать с остальными 20% кода? Пастить?

множественное наследование

Даже если есть, то что? Таким же образом есть методы в X которые должны работать F (наследование x->y->z->f) и не должны в Е. В общем случае всё выродится к тому, что у тебя будут классы из одного метода, где-то отдельно структура и ты будешь всё это множественно сношать.