|
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 3
|
|||||||||||
Правильное понимание и обоснование использования полиморфизма08.12.2016, 16:40. Показов 3010. Ответов 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
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
||||
| 26.12.2016, 20:53 | ||||
![]() Например, когда помогаю студентам (т.е. пишу весь код за них) с написанием курсовых, пишу только в процедурном стиле. Потому что студент и без ООП может заблудиться в двух соснах, даже когда каждая строчка кода подробно прокомментирована. Можете назвать нечто подобное для реальной разработки, когда ООП действительно не выгоден для проекта? А если мы хотим найти, например, такого замечательного программиста, как вы, который знает, когда использовать процедурный стиль, а когда ООП, получается этот специалист в любом случае должен знать ООП. Иначе как он поймёт, когда применять ООП, а когда нет?
1
|
||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||||||||||||
| 30.12.2016, 14:59 | ||||||||||||
|
ООП более труден для понимания. Кстати, я и процедур стараюсь избегать, они тоже увеличивают сложность. ![]() В общем, почитайте о сложности в программировании. ![]() ![]() Вы пишете код для компьютера? Ну и отлично, пишите. ![]() Мы же пишем этот код для себя, нам потом с ним работать. То, что программист знает ООП, не значит что ООП более понятно ему. Можно ж написать без {censored} и более понятно для окружающих. А то есть такие, начитаются каких-то статей и давай пихать свой код, более никому не понятный, по проекту. ![]() Ну и голову полиморфизмом забивать не стоит. ![]() Ну вот где может понадобиться "знание" об ООП полиморфизме? ![]()
0
|
||||||||||||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,299
|
||
| 31.12.2016, 08:39 | ||
![]() ООП - инструмент, овладев которым, можно писать быстрее, больше, качественнее. Если ты делаешь двухстраничную поделку для себя, то да - ООП тут не нужен. Вообще ничего не нужно. Пиши хоть на ассемблере. Но когда речь заходит о работе над большим и сложным проектом, за не свои деньги и в ограниченные сроки, то тут уж извините: либо ты сделаешь быстро и качественно (и так, чтобы поддерживать это всё потом можно было), либо это сделают конкуренты. И замечу, что в таких ситуациях приоритет отдаётся возможностям инструмента и языка, а не понятности кода для "новичка". Тут либо новичок сделает над собой усилие и "прокачается", чем кардинально поднимет свою стоимость как специалиста, либо будет нафиг никому не нужный сидеть на форумах и доказывать всем какое ООП зло. Как-то так
0
|
||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||||||
| 31.12.2016, 13:38 | ||||||
![]() Предыдущие ораторы признали, что ООП менее понятно. Но это ни в коем случае не значит, что оно под запретом! Во многих случаях ООП и понижает сложность. ![]() ![]() Вконтакте вот почему-то не ООП ![]() Они все усложняют, а потом да, сидят и правят на поддержке свои же баги. ![]() Да и ООП им как бы не особо то и нужен. Такие программисты для минимизации собственной ответственности в основном сидят на фреймворках. Быстро в большинстве случаев не будет стоит дорого. Наоборот нужно проект затягивать. ![]()
0
|
||||||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,299
|
|||||||
| 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
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,299
|
||||||||||
| 04.01.2017, 15:43 | ||||||||||
echo '<h1>Hello</h1>' (или как оно правильно) и тебе откроется страшная правда о пользе управлением сложностью и структурой кода.Во-первых, фрейворк = заготовленный, очень обобщённый каркас приложения и набор библиотечных функций. Оно не обязано использовать ООП. Если использует (или требует от программиста), то только потому, что это удобно. Во-вторых, ООП с фрейморками никак не коррелирует. Для того, чтобы завернуть что-то в класс или сотворить пару-тройку паттернов никакие библиотеки и фрейворки не нужны. За доказательствами можно сходить в цех "С++" или в ".NET".
0
|
||||||||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||
| 04.01.2017, 16:18 | ||
|
Это как-то даже тупо смотрится. Дальше даже читать лень, ибо бессмысленно.
0
|
||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,299
|
|||
| 04.01.2017, 16:34 | |||
![]()
0
|
|||
| 11.01.2017, 04:12 | |
|
0
|
|
| 11.01.2017, 04:12 | |
|
Помогаю со студенческими работами здесь
35
Пример использования генератора случайных чисел для демонстрации динамического полиморфизма Обоснование отказа от БД Математическое обоснование календаря Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера 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 с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|