ООП позволяет писать гибкие, расширяемые и читабельные программы. Во многом это обеспечивается благодаря полиморфизму, под которым понимается возможность во время выполнения программы с помощью одного и того же имени выполнять разные действия или обращаться к объектам разного типа.
В общем виде концепцию полиморфизма часто можно описать как «один интерфейс, множество методов». Это значит, что можно разработать единый интерфейс для группы однотипных действий. Полиморфизм помогает упростить код, так как позволяет использовать один и тот же интерфейс для определения общего класса действий для разных ситуаций. В каждом конкретном случае компилятор сам выберет именно тот метод, который требуется программисту (конечно, если он относится к данному общему классу).