Полиморфизм - это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. В С++ можно использовать одно имя функции для множества различных действий. Это называется перегрузкой функций (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)
для целочисленных, с плавающей точкой и длинных целоых значений.
В более общем смысле, концепцией полиморфизма является идея “один интерфейс, множество методов”