Что такое полиморфизм?

Я понял, что ООП слишком сильно засело мне в голову, когда на вопрос препода по биологии "Потомки некоторого вида понемногу меняют свои свойства и ареал обитания, но при этом наследуют основные свойства предков. Как называется этот механизм?" я инстинктивно сказал: "Полиморфизм"...

По мотивам bash.org.ru

Конечно, этот термин, хотя и имеет отношение к сфере информационных технологий, не так распространен, как ряд других весьма интересных терминов. Тем не менее, достаточно часто человеку, далекому от программирования, приходится внезапно сталкиваться с этим термином, так что лучше подготовиться к этой встрече заранее.

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

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

В связи со всем изложенным выше у читателя этой заметки может возникнуть вполне резонный вопрос: зачем же вообще нужен полиморфизм? Вопрос, безусловно, вполне логичный и, несомненно, заслуживающий ответа. Дело в том, что такая полезная и интересная вещь, как полиморфизм, резко улучшает читаемость кода программы и увеличивает процент повторного использования кода, что, соответственно, сокращает временные, а за ними и денежные затраты на разработку программного продукта.

В настоящее время подавляющее большинство распространенных языков программирования поддерживают полиморфизм в том или ином его виде, в связи с чем роль этого механизма в современной индустрии программирования, в общем-то, трудно переоценить.

Вадим СТАНКЕВИЧ,
[email protected]

Версия для печатиВерсия для печати

Номер: 

10 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!