Сложный полиморфизм используют
- при наследовании свойств родительских (вышеизложенных) типов объектов дочерними (нижеизложенными) типами объектов
- если при вызове переопределенного метода точно известны тип объекта, для которого вызывается этот метод и какой метод должен быть подключен : метод родителя или метод потомка
- если при вызове переопределенного метода необходимо уточнить, какой метод должен быть подключен: метод родителя или метод потомка, т. к. объект, для которого вызывается переопределенный метод, может быть как объектом класса родителя, так и объектом класса потомка
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.