Полиморфизм

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

Фактически, мы уже познакомились с эти понятием разбирая структруру. Есть 3 метода и каждый из них принмает различные входные данные (как по количеству, так и по типу):

double length(int x1, int y1, int x2, int y2);
double length(Point p1, Point p2);
double length(Segment s);

В языке C, в отличие от C++ полиморфизма нет и приходится писать отдельные функции для различных аргументов. Например для функции модуля есть 3 различных функций abs(int), fabs(float), labs(long) для целочисленных, с плавающей точкой и длинных целоых значений.

В более общем смысле, концепцией полиморфизма является идея “один интерфейс, множество методов”