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