|
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
|
||||||
Причины явной реализации членов интерфейса22.01.2012, 01:01. Показов 5190. Ответов 3
Метки нет (Все метки)
Шилдт описывает две причины явной реализации членов интерфейсов, но мне не понятна одна из них. Вот, что он пишет: когда интерфейсный метод реализуется с указанием его полного имени, то такой метод оказывается доступным не посредством объектов класса, реализующего данный интерфейс, а по интерфейсной ссылке. Следовательно, явная реализация позволяет реализовать интерфейсный метод таким образом, чтобы он не стал открытым членом класса, предоставляющего его реализацию. Мне не понятно смысл описанного и причина когда это нужно использовать и зачем? В книге приводится следующий пример, я пометил комментарии что мне не понятно также в коде:
0
|
||||||
| 22.01.2012, 01:01 | |
|
Ответы с готовыми решениями:
3
Ошибка при явной реализации методов Add и Remove
Класс, требующий реализации интерфейса |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||||||||||||||||||||
| 22.01.2012, 01:27 | ||||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
Какой-то идиотский пример этот Шилдт привел.
Особенно для человека, который язык только изучает. Явная реализация интерфейса нужна в том случае, если ваш класс реализует несколько интерфейсов с одинаковыми сигнатурами методов. Метод того интерфейса, который реализован неявно, будет использоваться по умолчанию при доступе к объекту, то есть он будет "главнее". Явная реализация будет доступна только при касте объекта к соответствующему типу. Например, у нас есть два интерфейса:
Теперь, предположим, возникла ситуация, когда ваш класс должен реализовать оба интерфейса:
Наиболее распространенный пример - это реализация методов IEnumerable и IEnumerable<T> в одном классе (скажем, System.Collections.Generic.List<T>). Первый - для совместимости со старыми классами.
Собственно, товарищ Шилдт в своем примере именно это и делает: показывает, что если привести экземпляр класса к типу интерфейса, который реализован явно, то можно использовать метод, принадлежащий этому интерфейсу. Показал, правда, как-то через жопу. Извините.
6
|
||||||||||||||||||||||||||
|
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
|
||||||
| 22.01.2012, 03:07 [ТС] | ||||||
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 22.01.2012, 03:09 | ||||||
|
ArniLand, так точно - обычный каст.
Как вариант:
0
|
||||||
| 22.01.2012, 03:09 | |
|
Помогаю со студенческими работами здесь
4
Замечание и критика по реализации интерфейса
Пример закрытой реализации интерфейса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|