Русская Википедия:Понижающее приведение

Материал из Онлайн справочника
Версия от 10:07, 6 сентября 2023; EducationBot (обсуждение | вклад) (Новая страница: «{{Русская Википедия/Панель перехода}} В объектно-ориентированном программировании '''понижающее приведение''' ({{lang-en| downcasting}}) или «уточнение типа» ({{lang-en|type refinement}}) — акт приведения типа, сс...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

В объектно-ориентированном программировании понижающее приведение (Шаблон:Lang-en) или «уточнение типа» (Шаблон:Lang-en) — акт приведения типа, ссылающегося на базовый класс, к одному из его производных классов.

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

Критика

Множество людей выступает за избегание использования понижающего приведения, так как в соответствии с принципом подстановки Барбары Лисков дизайн объектно-ориентированного программирования, требующий подобного, считается некорректным. Некоторые языки, как например, OCaml, полностью запрещают понижающее преобразование.

Распространённым примером плохо продуманного дизайна являются контейнеры высших типов, как контейнеры в языке Java, присутствовавшие до введения Шаблон:Iw, требовавшие понижающего приведения вложенных объектов для их повторного использования.

См. также

Дополнительные источники