|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
Абстрактные классы и интерфейсы. Разница01.09.2017, 18:35. Показов 13407. Ответов 30
Метки нет (Все метки)
Вот хоть убейте, не могу понять разницы между абстрактным классом и интерфейсом. До этого изучал C++, там не было интерфейсов, скорее всего из-за этого проблемы моего непонимания...
Нет, я понимаю, что в абстрактном классе могут быть методы, которые имеют реализацию, но хоть один метод должен быть абстрактным, напротив в интерфейсах все методы должны быть чистым протоколом... В этом чтоли только различие? Ну не делай ты в абстрактном классе методов с реализацией и все, что его будет отличать от интерфейса? Или интерфейсы сделаны для того, чтобы можно было реализовывать "неполное" множественное наследование? Ну так не запрещали бы множественного наследования... Какие еще различия есть? Пока я не увидел глобальной разницы...
0
|
|
| 01.09.2017, 18:35 | |
|
Ответы с готовыми решениями:
30
Абстрактные классы и интерфейсы Интерфейсы и абстрактные классы Интерфейсы и абстрактные классы: каково их назначение |
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
|
| 02.09.2017, 11:20 | |
|
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||||||||||||
| 02.09.2017, 11:26 [ТС] | ||||||||||||||||
|
Aael, заменил
0
|
||||||||||||||||
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
|
| 02.09.2017, 11:34 | |
|
Bretbas, та ты что-то не так с тестом делаешь, вот твой тест 5 раз подряд:
Кликните здесь для просмотра всего текста
Invoke interface method: 00:00:05.6080583
Invoke abstract class method: 00:00:03.7198910 Invoke interface method: 00:00:05.5876918 Invoke abstract class method: 00:00:03.7193130 Invoke interface method: 00:00:05.5725993 Invoke abstract class method: 00:00:03.7168229 Invoke interface method: 00:00:05.5751074 Invoke abstract class method: 00:00:03.7229329 Invoke interface method: 00:00:05.5926129 Invoke abstract class method: 00:00:03.7180879 и в обратном порядке: Кликните здесь для просмотра всего текста
Invoke abstract class method: 00:00:04.3579636
Invoke interface method: 00:00:05.5479269 Invoke abstract class method: 00:00:04.3037285 Invoke interface method: 00:00:05.5326887 Invoke abstract class method: 00:00:04.3118644 Invoke interface method: 00:00:05.5359607 Invoke abstract class method: 00:00:04.3090508 Invoke interface method: 00:00:05.5321756 Invoke abstract class method: 00:00:04.3044105 Invoke interface method: 00:00:05.5290812
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||||||||||
| 02.09.2017, 12:01 [ТС] | |||||||||||
|
Aael, что можно с тестом не так делать, тут кода-то с гулькин хрен. Еще раз, вот мой код теста:
0
|
|||||||||||
|
|
|||||||||
| 02.09.2017, 12:03 | |||||||||
|
Мда, понимать бы еще все это...
![]()
1
|
|||||||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 02.09.2017, 12:10 [ТС] | |
|
Wolfdp, Что скажете о моем тесте? Почему же у меня вызов интерфейсного метода быстрее чем вызов абстрактного, если на вызов интерфейсного уходит больше инструкций процессора?
0
|
|
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
||
| 02.09.2017, 12:27 | ||
факт в том, что в с++ таких проблем нет, возвращаясь к вопросу тс, получается, что в .net наплодили лишних сущностей и реализаций с сомнительными выгодами, а "по-старому" писать не дают.
0
|
||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||||||||||||||||
| 02.09.2017, 12:58 [ТС] | |||||||||||||||||
|
Aael,
Вот к примеру еще один момент. К примеру есть класс, который реализует IEnumerable, чтобы использовать этот класс в конструкциях foreach для внутреннего массива этого класса. Как лучше реализовать GetEnumerator()? Троелсен предлагает с помощью делегирования внутренного класса внешнему вызову:
0
|
|||||||||||||||||
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
|||||||||||
| 02.09.2017, 13:12 | |||||||||||
|
Bretbas, видимо опять что-то с тестами т.к. по логике (здесь я могу ошибаться с тем как это работает в массивах) вы просто делаете лишние действия:
car вернуть foo(car) то без
1
|
|||||||||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 02.09.2017, 13:21 [ТС] | ||
|
Aael,
0
|
||
|
|
||||
| 02.09.2017, 13:31 | ||||
|
Добавлено через 3 минуты
1
|
||||
| 02.09.2017, 13:31 | |
|
Интерфейсы и абстрактные классы: обеспечить работу методов в конечном классе Абстрактные классы абстрактные классы Абстрактные классы Интерфейс и абстрактные классы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|