|
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 3
|
|||||||||||
Правильное понимание и обоснование использования полиморфизма08.12.2016, 16:40. Показов 3337. Ответов 34
Метки нет (Все метки)
Всем привет!
Помогите понять полиморфизм правильно. Так как примеров в Интернете много и все они отличаются друг от друга. Как я его понимаю. Это когда свойство базового класса может использовать методы производных классов. Пример кода.
Все приведенные мной примеры показывают полиморфизм или только первый ? Заранее спасибо !
0
|
|||||||||||
| 08.12.2016, 16:40 | |
|
Ответы с готовыми решениями:
34
Не понимание полиморфизма и статического поля на примере представленного кода Правильное понимание Правильное понимание последовательности арифметических операций |
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|||||||
| 26.12.2016, 13:31 | |||||||
![]() Есть и параметрический полиморфизм, когда разные ф-и могут принимать и обрабатывать данные разных типов. ![]() Заострять внимание на полиморфизме в ООП и возносить его до уровня кита - признак оленя. ![]() ![]() ![]() ![]() Добавлено через 11 минут ![]() А обратное преобразование в объект нужного типа? ![]() А можно этим псевдопрограммированием не заниматься, а сразу использовать массив, где он подходит по смыслу.
0
|
|||||||
| 26.12.2016, 14:21 | |
|
0
|
|
| 26.12.2016, 14:51 | |
|
0
|
|
|
3901 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,917
|
||||
| 26.12.2016, 20:53 | ||||
![]() Например, когда помогаю студентам (т.е. пишу весь код за них) с написанием курсовых, пишу только в процедурном стиле. Потому что студент и без ООП может заблудиться в двух соснах, даже когда каждая строчка кода подробно прокомментирована. Можете назвать нечто подобное для реальной разработки, когда ООП действительно не выгоден для проекта? А если мы хотим найти, например, такого замечательного программиста, как вы, который знает, когда использовать процедурный стиль, а когда ООП, получается этот специалист в любом случае должен знать ООП. Иначе как он поймёт, когда применять ООП, а когда нет?
1
|
||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||||||||||||
| 30.12.2016, 14:59 | ||||||||||||
|
ООП более труден для понимания. Кстати, я и процедур стараюсь избегать, они тоже увеличивают сложность. ![]() В общем, почитайте о сложности в программировании. ![]() ![]() Вы пишете код для компьютера? Ну и отлично, пишите. ![]() Мы же пишем этот код для себя, нам потом с ним работать. То, что программист знает ООП, не значит что ООП более понятно ему. Можно ж написать без {censored} и более понятно для окружающих. А то есть такие, начитаются каких-то статей и давай пихать свой код, более никому не понятный, по проекту. ![]() Ну и голову полиморфизмом забивать не стоит. ![]() Ну вот где может понадобиться "знание" об ООП полиморфизме? ![]()
0
|
||||||||||||
|
14836 / 9620 / 1369
Регистрация: 21.01.2016
Сообщений: 36,187
|
||
| 31.12.2016, 08:39 | ||
![]() ООП - инструмент, овладев которым, можно писать быстрее, больше, качественнее. Если ты делаешь двухстраничную поделку для себя, то да - ООП тут не нужен. Вообще ничего не нужно. Пиши хоть на ассемблере. Но когда речь заходит о работе над большим и сложным проектом, за не свои деньги и в ограниченные сроки, то тут уж извините: либо ты сделаешь быстро и качественно (и так, чтобы поддерживать это всё потом можно было), либо это сделают конкуренты. И замечу, что в таких ситуациях приоритет отдаётся возможностям инструмента и языка, а не понятности кода для "новичка". Тут либо новичок сделает над собой усилие и "прокачается", чем кардинально поднимет свою стоимость как специалиста, либо будет нафиг никому не нужный сидеть на форумах и доказывать всем какое ООП зло. Как-то так
0
|
||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||||||
| 31.12.2016, 13:38 | ||||||
![]() Предыдущие ораторы признали, что ООП менее понятно. Но это ни в коем случае не значит, что оно под запретом! Во многих случаях ООП и понижает сложность. ![]() ![]() Вконтакте вот почему-то не ООП ![]() Они все усложняют, а потом да, сидят и правят на поддержке свои же баги. ![]() Да и ООП им как бы не особо то и нужен. Такие программисты для минимизации собственной ответственности в основном сидят на фреймворках. Быстро в большинстве случаев не будет стоит дорого. Наоборот нужно проект затягивать. ![]()
0
|
||||||
|
14836 / 9620 / 1369
Регистрация: 21.01.2016
Сообщений: 36,187
|
|||||||
| 31.12.2016, 16:35 | |||||||
|
Всё тоже самое можно получить и используя процедурный подход. Но это потребует куда больше писанины и, соответсвенно, времени. И багов будет больше, ибо больше кода. И разобраться в таком коде проще. Намного. Хотя, признаться, мне попадался проект, где люди по незнанке сильно перестарались и напроектировали такого... Но я думаю, что используя процедурный подход там лучше бы не стало. Мораль: везде нужна голова, ибо любой инструмент в руках варвара - мусор. Мне на работе никто не платит ни за количество строк кода, ни за сложность, ни за "ООП". От меня нужно в конце недели, чтобы было "вон то" и оно могло "вот так". И чтобы после меня всё было понятно, так, чтобы другой товарищь потом мог допилить\переделать, если возникнет необходимость. ![]() Вообще, что-то доказывать мне уже не очень интересно. Я не в первый раз это делаю. Пока ты сам не пройдёшь через геморрой, кровь и слёзы при работе с "простым и понятным" процедурным кодом, пока ты не поучавствуешь в работе над проектом столь большим, что он сам себя своим же весом давит, то пользы от использования ООП видно не будет. Добавлено через 6 минут
2
|
|||||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|||||||||||
| 31.12.2016, 17:00 | |||||||||||
Я же в .NET не лезу...Да и поймите. Я не против ООП вообще, я говорю, что не везде его стоит тулить. А вы зациклились. ![]() Я стараюсь и процедур не использовать, ибо они тоже увеличивают сложность кода. ![]() ![]() Погуглите. ![]() Какие должны быть у меня знания и опыт, если программисты ООП-шники почти целиком и полностью используют фреймворки?.. ![]() ![]() ![]() А тут вдруг такое.
0
|
|||||||||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|
| 02.01.2017, 13:43 | |
|
тест прошел успешно
0
|
|
| 03.01.2017, 09:38 | |
|
0
|
|
|
14836 / 9620 / 1369
Регистрация: 21.01.2016
Сообщений: 36,187
|
||||||||||
| 04.01.2017, 15:43 | ||||||||||
echo '<h1>Hello</h1>' (или как оно правильно) и тебе откроется страшная правда о пользе управлением сложностью и структурой кода.Во-первых, фрейворк = заготовленный, очень обобщённый каркас приложения и набор библиотечных функций. Оно не обязано использовать ООП. Если использует (или требует от программиста), то только потому, что это удобно. Во-вторых, ООП с фрейморками никак не коррелирует. Для того, чтобы завернуть что-то в класс или сотворить пару-тройку паттернов никакие библиотеки и фрейворки не нужны. За доказательствами можно сходить в цех "С++" или в ".NET".
0
|
||||||||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||
| 04.01.2017, 16:18 | ||
|
Это как-то даже тупо смотрится. Дальше даже читать лень, ибо бессмысленно.
0
|
||
|
14836 / 9620 / 1369
Регистрация: 21.01.2016
Сообщений: 36,187
|
|||
| 04.01.2017, 16:34 | |||
![]()
0
|
|||
| 11.01.2017, 04:12 | |
|
0
|
|
| 11.01.2017, 04:12 | |
|
Пример использования генератора случайных чисел для демонстрации динамического полиморфизма Обоснование отказа от БД Математическое обоснование календаря Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки.
Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён".
Изменено отображение буквы Й.
Добавлена. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|