Полиморфизм — это способность объекта изменять форму (поли — много, морфизм — изменение формы), возможность использовать одинаковые имена для методов, входящих в различные классы.
Полиморфный объект, следовательно, представляет собой объект, который может принимать разные формы.
Основные концепции:
Полиморфизм представляет собой способность объекта изменять форму во время выполнения программы.
C++ упрощает создание полиморфных объектов.
Для создания полиморфных объектов ваши программы должны использовать виртуальные (virtual) функции.
- Виртуальная (virtual) функция — это функция базового класса, перед именем которой стоит ключевое слово virtual.
Любой производный от базового класс может использовать или перегружать виртуальные функции.
Для создания полиморфного объекта вам следует использовать указатель на объект базового класса
Перегрузка функций и перегрузка операторов - это не что иное, как проявление полиморфизма во время компиляции программы на языке C++.
Полиморфизм во время выполнения программы обеспечивается использованием виртуальных функций базовых классов и применением указателей на объекты базовых классов. Для создания полиморфного объекта первоначально определяются виртуальные функции базовых классов при помощи ключевого слова virtual, размещаемого перед прототипами функций. В зависимости от того, на объект какого класса будет указывать указатель, определяется, какая виртуальная функция будет вызвана во время выполнения программы.
Создание указателя на объект базового класса выполняется в программе следующим образом: имя_базового_класса *указатель;.
Кроме перечисленных выше, в языке C++ существует еще один способ реализации полиморфизма - использование шаблонов функций и шаблонов классов.
Шаблон функции позволяет определить функции, возвращающие значения разных типов.
Шаблоны классов позволяют строить классы аналогично шаблонам функций.