Инструменты пользователя

Инструменты сайта


examination:oop:question10

10. Полиморфизм: назначение и семантика. Способы реализации полиморфизма: полиморфные, виртуальные и переопределяемые функции. Формулировка концепции ООП.

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. То есть мы можем получить различные объекты, но у которых различается реализация одинаковых по названию методов, а значит и поведение объектов.

Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).

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

Полиморфные функции, пример

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

Виртуальные функции

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

Переопределяемые функции

Также полиморфизма в некоторых ООП языках можно достичь за счет перегрузки методов, где на основании типов данных (переданных в метод) выбирается необхдимый метод, который будет выполняться. Фактически это будет значить, что объект сможет работать с несколькими типами параметров, используя единый интерфейс.

examination/oop/question10.txt · Последние изменения: 2014/01/15 08:22 (внешнее изменение)