Почему не рекомендуется использовать множественное наследование?

StackOverflow https://stackoverflow.com/questions/8831910

Вопрос

Я создаю классы S4 в R.

Я читал в https://github.com/hadley/devtools/wiki/S4 <цитата>

Обратите внимание, что S4 поддерживает множественное наследование, но это следует использовать с особой осторожностью, поскольку это делает поиск метода чрезвычайно сложным.

Что такое поиск метода и почему он более сложен при множественном наследовании?

Это было полезно?

Решение

Когда вы вводите код f(x) с кодом x, принадлежащим нескольким классам (например, A, B и C), компьютер должен решить, какой метод f вызывать (из класса A, B или C): это называется "поиск метода ".

Множественное наследование часто создает проблемы при развитии кода.

Представьте, что вы написали два базовых класса A и B, и класс C наследуется от обоих.Все нормально работает. Несколько месяцев спустя разработчик, который использует класс A и совершенно не знает классов B и C (они ему не нужны), добавляет новый метод в класс A. Без его ведома уже существует метод с таким жеимя в классе B. Что происходит с объектами класса C?Будет ли использован метод A или B?На некоторых языках код может дать сбой, на других может иметь место неопределенное поведение и очень трудно обнаруживаемая ошибка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top