Ковариантность и скрытие потомком
Ковариантность и скрытие потомком
Если бы мир был прост, то разговор о типизации можно было бы и закончить. Мы определили цели и преимущества статической типизации, изучили ограничения, которым должны соответствовать реалистичные системы типов, и убедились в том, что предложенные методы типизации отвечают нашим критериям.
Но мир не прост. Объединение статической типизации с некоторыми требованиями программной инженерии создает проблемы более сложные, чем это кажется с первого взгляда. Проблемы вызывают два механизма: ковариантность (covariance) - смена типов параметров при переопределении, скрытие потомком (descendant hiding) - способность класса потомка ограничивать статус экспорта наследуемых компонентов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Скрытие и открытие текста примеров
Скрытие и открытие текста примеров На Web-страницах, описывающих теги HTML и атрибуты стиля CSS, мы поместили текст примеров применения того или иного тега или атрибута стиля. Часто его делают скрывающимся и открывающимся в ответ на щелчок мышью — так можно сделать Web-страницы
Скрытие и открытие вложенных списков
Скрытие и открытие вложенных списков Вложенные списки в полосе навигации чрезвычайно громоздки. Как бы сделать так, чтобы все они были скрыты и появлялись только при щелчке на пункте "внешнего" списка, в который они вложены?Легко!— Изначально все вложенные списки у нас
Скрытие и открытие текста примеров
Скрытие и открытие текста примеров На Web-страницах, описывающих теги HTML и атрибуты стиля CSS, мы поместили текст примеров применения того или иного тега или атрибута стиля. Часто его делают скрывающимся и открывающимся в ответ на щелчок мышью — так можно сделать Web-страницы
29. Описание и скрытие имен
29. Описание и скрытие имен Описание определяет имя в области видимости. Таким образом, имя может применяться только в некоторой части программы. Для имени, которое описано в функции (такое имя часто называют локальным), эта область видимости располагается от точки
Скрытие объектов
Скрытие объектов Чтобы облегчить управление сложными сценами, используют скрытие объектов. Это ускоряет отрисовку объектов в окнах проекций, в результате чего возрастает скорость работы. Скрытые объекты невидимы, и их нельзя выделить.Скрыть объекты можно несколькими
Ковариантность делегатов
Ковариантность делегатов К этому моменту вы должны чувствовать себя более уверенно при создании и использовании типов делегата. Перед тем как перейти к изучению синтаксиса событий в C#, мы рассмотрим новую возможность .NET 2.0, связанную с делегатами и обозначенную термином
Скрытие строк и столбцов
Скрытие строк и столбцов При работе с таблицей Excel нередко используют множество ячеек, содержащих, например, формулы, какие-либо константы, редко изменяемые данные, которые участвуют в подсчетах различных итогов, но не должны отображаться на экране или в распечатанном
Скрытие вкладок
Скрытие вкладок Например, при необходимости можно удалить вкладку Сеть. Для этого в разделе HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsMediaPlayer необходимо создать REG_DWORD-параметр HideNetworkTab и присвоить ему значение 1. Ниже приведен текст соответствующего REG-файла (расположение на компакт-диске
Скрытие информации
Скрытие информации Правило Скрытия Информации можно сформулировать следующим образом: Разработчик каждого модуля должен выбрать некоторое подмножество свойств модуля в качестве официальной информации о модуле, доступной авторам клиентских модулей.Применение этого
У3.3 Ограничения на скрытие информации
У3.3 Ограничения на скрытие информации Представляете ли вы себе обстоятельства, при которых скрытие информации не должно применяться к связям между модулями?
Селективный экспорт и скрытие информации
Селективный экспорт и скрытие информации До сих пор все компоненты класса были доступны всем потенциальным клиентам. Это, безусловно, не всегда приемлемо, поскольку скрытие информации является важным элементом построения последовательной и гибкой
Наследование и скрытие информации
Наследование и скрытие информации Последний вопрос, оставшийся пока без ответа, как наследование взаимодействует с принципом Скрытия информации.В отношениях между классом и его клиентами скрытие информации определяет разработчик класса. Именно он определяет политику
Ковариантность
Ковариантность Что происходит с аргументами компонента при переопределении его типа? Это важнейшая проблема, и мы уже видели ряд примеров ее проявления: устройства и принтеры, одно- и двухсвязные списки и т. д. (см. разделы 16.6, 16.7).Вот еще один пример, помогающий уяснить
Скрытие потомком
Скрытие потомком Прежде чем искать решение проблемы ковариантности, рассмотрим еще один механизм, способный в условиях полиморфизма привести к нарушениям типа. Скрытие потомком (descendant hiding) - это способность класса не экспортировать компонент, полученный от