Я понял, что ООП слишком
сильно засело мне в голову,
когда на вопрос препода по
биологии "Потомки
некоторого вида понемногу
меняют свои свойства и ареал
обитания, но при этом наследуют
основные свойства предков. Как
называется этот механизм?" я
инстинктивно сказал:
"Полиморфизм"... По мотивам bash.org.ru |
Конечно, этот термин, хотя и имеет отношение к сфере информационных технологий, не так распространен, как ряд других весьма интересных терминов. Тем не менее, достаточно часто человеку, далекому от программирования, приходится внезапно сталкиваться с этим термином, так что лучше подготовиться к этой встрече заранее.
Полиморфизм - это возможность единообразного взаимодействия с различными по своей природе объектами, которые имеют одинаковый по своей структуре интерфейс для доступа к ним. Часто, говоря о сути полиморфизма, её выражают фразой "Один интерфейс, множество реализаций". Полиморфизм - это, можно сказать, краеугольный камень объектно-ориентированного программирования (ООП), вернее, один из краеугольных камней (до остальных мы, вполне возможно, также когда-нибудь доберемся). Не чужд полиморфизм, вместе с тем, и еще одной распространенной в наши дни парадигме программирования - речь идет о функциональном программировании.
Чтобы понять, о чем именно идет речь, лучше всего обратиться к примеру, далекому от программирования и вообще от информационных технологий - к реальным объектам, с которыми каждый сталкивается в своей повседневной жизни. Возьмем такие объекты, как кружка и лейка. Оба имеют одинаковый интерфейс для взаимодействия с человеческими руками (ручка) и с краном или чайником, из которого в них наливают воду. При этом задачи у этих объектов совершенно разные, и пить чай из лейки вряд ли кто-то будет (по крайней мере, до тех пор, пока находится в здравом уме и твердой памяти).
В связи со всем изложенным выше у читателя этой заметки может возникнуть вполне резонный вопрос: зачем же вообще нужен полиморфизм? Вопрос, безусловно, вполне логичный и, несомненно, заслуживающий ответа. Дело в том, что такая полезная и интересная вещь, как полиморфизм, резко улучшает читаемость кода программы и увеличивает процент повторного использования кода, что, соответственно, сокращает временные, а за ними и денежные затраты на разработку программного продукта.
В настоящее время подавляющее большинство распространенных языков программирования поддерживают полиморфизм в том или ином его виде, в связи с чем роль этого механизма в современной индустрии программирования, в общем-то, трудно переоценить.
Вадим СТАНКЕВИЧ,
[email protected]
Горячие темы