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

Существует 2 типа полиморфизма:

  1. Ad-hoc(мнимая форма) - приведение типов данных и перегрузка методов. Исполнение разного кода для разных типов аргументов.
  2. Параметрический полимерфизм(истинная) - подразумевает исполнение одного и того же кода для всех допустимых типов агрументов.

"Все if в программе можно заменить на полиморфизм"

Полиморфизм простыми словами