Сложный полиморфизм используют

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

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.