Имя: Пароль:
IT
 
Чем полиморфизм отличается от наследования?
Ø (Волшебник 30.05.2016 12:44)
,
0 los_hooliganos
 
23.05.16
07:10
Что-то не могу въехать. По мере изучения ООП, для меня это де факто одно и тоже. Хотя в учениях об ООП это делят на 2 разные вещи.

И вообще можно пример где есть наследование, но нет полиморфизма
210 ViSo76
 
23.05.16
14:08
(202) А менеджер объекта это статические методы класса :). Осталось закрыть глаза и поверить что в 1С есть ООП
211 Shurjk
 
23.05.16
14:08
(199) А где тебя на С++ программировать учили?
212 Shurjk
 
23.05.16
14:09
(210) Лучше открыть и подумать о том нужны ли они там и главное зачем.
213 ViSo76
 
23.05.16
14:11
(212) Нужны разумеется, оченно неплохо с помощью таких вещей писать в парадигме ООП
214 ДенисЧ
 
23.05.16
14:12
(213) ООП в 1с не нужны от слова совесм
215 ViSo76
 
23.05.16
14:15
(214) Для читабельности кода, для того чтобы под крышей объекта держать код относящийся именно к данному объекту. К примеру РегистрСведений.ИмяРегистра.НайтиЗаписиКонтрагента( пКонтрагент )

PS: Я не говорил об ООП, а говорил о написании кода в стиле ООП
216 ДенисЧ
 
23.05.16
14:16
(215) Твой пример реализован в текущих платформах 1с
217 ViSo76
 
23.05.16
14:17
(216) Ещё с 8.2 ( менеджер объекта )
218 ДенисЧ
 
23.05.16
14:18
(217) О чём я и говорю.
219 spock
 
23.05.16
14:18
(211) НГТУ - АВТФ - Специальность: Программное обеспечение ВТ и АС.
220 Карупян
 
23.05.16
14:19
(215) Со всей это асинхронностью в 1С нужны не ООП, а замыкания
221 ViSo76
 
23.05.16
14:20
(218) Если в плане полноценного ООП в 1С то 100% не нужно. Что конкретно нужно в 1С, так это сортировка массива, и функция ABS ( модуль числа ).
222 Карупян
 
23.05.16
14:21
(221) Сортировка и так есть
223 Локи-13
 
23.05.16
14:22
В чем смысл сейчас (имею в виду 2016 год), обсуждать ООП / не ООП?

Есть языки и есть фреймворки. И плевать какие принципы и парадигмы там поддерживаются.

Нужно думать о задачах, и более удобном способе их решения.
224 ViSo76
 
23.05.16
14:22
(220) Что за замыкания? Типа семафоры?
225 ДенисЧ
 
23.05.16
14:22
(220) Замыкания в 1с тоже не нужны
226 spock
 
23.05.16
14:23
+219 Есть проекты, в которых я участвовал, используя кресты:
http://catalog.mista.ru/profile/public/
http://1cpp.ru/index.php/1cpp:Community

Достаточно?
227 ViSo76
 
23.05.16
14:24
(222) В массиве? Приведи скриншот
228 Карупян
 
23.05.16
14:25
(227) Наториально заверенный?
229 Рэйв
 
23.05.16
14:25
(221)Загрузи в колонку ТЗ, отсортируй и верни обратно:-)
230 Карупян
 
23.05.16
14:26
(225) Ты наверно еще не столкнулся с асинхронностью
231 ДенисЧ
 
23.05.16
14:29
(230) У тебя шизофазия?
232 ViSo76
 
23.05.16
14:29
(230) Ты про фоновые, про форму немодальную, про обработчик ожидания? Что конкретно?
233 Карупян
 
23.05.16
14:30
(232) Я про всякие НачатьПоискФайловВКаталоге
234 ViSo76
 
23.05.16
14:32
(233) И в чём проблема? Там нет callback? Ты имеешь ввиду объект синхронизации действий типа семафоров?
235 ViSo76
 
23.05.16
14:40
(229) Ну это понятно что через ТаблицуЗначений. У ТЗ колонка так же может быть не типизирована, и вроде как позволяет сортировать, может конечно выдать ошибку runtime на различных данных... и по сему не вижу причин почему не сделать для массива тоже самое.
236 Shurjk
 
23.05.16
14:47
(226) Вообще тема про перегрузки это обычно первая тема по курсу ООП на С++, потому собственно и привел перегрузки как пример полиморфизма. И если ты на ней же плывешь то далнейшее обсжудение как бы не о чем, для того чтобы чего то колбасить можно вообще не знать что такое ООП, многие 1с-ники кстати так годами работают, когда принимал людей просил рассказать как работают соединения в запросах, реально знают буквально еденицы, большинство колбасит и знать не знает.
237 Локи-13
 
23.05.16
14:51
(236) Большинство программистов в мире работает по заученным алгоритмам.

Т.е. знают какие буквы написать, чтоб получить нужный результат. Почему именно такие буквы их не волнует.

У индусов такой стиль вообще национальная черта.
238 ViSo76
 
23.05.16
14:53
(236) А ты расскажи как работают соединения, а то когда встаёт вопрос о том, почему так медленно работает запрос, то слетаются повитухи, которые пытаются поставить мёртвому припарки... :). А так они прийдут к тебе и будут тебе баки заливать...
239 Тролль главный
 
23.05.16
14:53
(202) есть, но все ущербные
240 Тролль главный
 
23.05.16
14:54
убийца 1С конечно будет ООП, если будет
241 ViSo76
 
23.05.16
14:54
(237) Вообще у индусов было принято платить за портянки, по этому они их и выкатывали https://habrahabr.ru/post/150982/
242 Shurjk
 
23.05.16
14:55
(238) Мне важно чтоб он во первых правильно работал. Насчет заливать баки это не ко мне.
243 Локи-13
 
23.05.16
14:58
(240) звучит как "Убийца слона будет зоопарк, если будет"
244 Тролль главный
 
23.05.16
14:59
(243) в общем именно так
245 Волшебник
 
модератор
23.05.16
14:59
(210) в 1С есть ООП
246 ДенисЧ
 
23.05.16
14:59
(245) Там есть инкапсуляция?
247 Локи-13
 
23.05.16
15:00
(244) могу посоветовать употреблять меньше наркотиков
248 Тролль главный
 
23.05.16
15:02
(245) да есть, но (239)
249 Волшебник
 
модератор
23.05.16
15:03
(246) В 1С есть инкапсуляция, наследование и полиморфизм.
250 Локи-13
 
23.05.16
15:07
(249) нет смысла их убеждать, они хотят из 1С сделать С++

Хоть убей не понимают, что это языки для разных задач.

И почему то считают, что ООП это только С++.
251 Pixelrat
 
23.05.16
15:11
Чем инстанцирование отличается от наследования?
252 Тролль главный
 
23.05.16
15:13
(249)
инкапсуляция: как сокрыть реквизит документа или сделать его рид-онли наружу?
наследование: только "одношаговое" наследование, наследовать от производных классов не получится
абстракция: интерфейсов нет, хотя есть составные типы, но существование методов никто не гарантирует
полиморфизм: все методы полиморфны, нельзя отказаться от этого (в силу нестрогой типизации). С другой стороны в силу "одношагового" наследования это мало эффективно
253 Волшебник
 
модератор
23.05.16
15:17
(252) Это уже детали, которые к общему не имеют отношения. Главное, что 1С - это объектно-ориентированная платформа.
254 Тролль главный
 
23.05.16
15:20
(253) согласен, потому что ЗАЗ-968 автомобиль, как и Toyota Camry
255 Dotoshin
 
23.05.16
15:21
(236) Открой секрет, как полиморфизм связан с соединениями в запросе?
256 Волшебник
 
модератор
23.05.16
15:24
(254) Естественно. Они же относятся к одному классу "Автомобиль"
257 Shurjk
 
23.05.16
15:24
(255) Это пример того что люди работают годами но не знают основ при этом.
258 Волшебник
 
модератор
23.05.16
15:24
В этом смысле, 1С является "Toyota Camry", а вот всякие С++ скорее похожи на запорожцы.
259 Тролль главный
 
23.05.16
15:25
(0)>>пример где есть наследование, но нет полиморфизма

если в С++ или С# использовать наследования, но не использовать слов virtual/override, то будет как раз наследование без полиморфизма
260 Тролль главный
 
23.05.16
15:27
(258) у 1С хорошо одно: она лучше всего подходит как старт-ап, быстрый взлет и все такое

но чем дальше, тем сложнее поддержка, те же типовые: постоянно переносят методы из модуля в модуль
261 spock
 
23.05.16
16:03
(236) а давай-ка, дружок, послушаем твое определение полиморфизма. И так как в самом начале было обозначено, что в контексте си-подобных языков, то давай и ты так же.

Пойдут ссылки на любые адекватные книги/ресурсы.
262 sash-ml
 
23.05.16
16:14
https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html
С точки зрения Джава, полиморфизм это вызов метода не по типу ссылки а по типу объекта при одинаковой сигнатуре.
263 Волшебник
 
модератор
23.05.16
16:18
(262) Java - отстой. Язык, родившийся мёртвым.  JavaScript рулит.
264 Рэйв
 
23.05.16
16:22
(263)оно какбы вообще рядом не стояло:-)
265 Волшебник
 
модератор
23.05.16
16:26
(264) Типа того. Java - запорожец, а JavaScript - Тойота Камри
266 spock
 
23.05.16
16:26
(262) Вот именно, "при одинаковой сигнатуре".

Но в (185) коллега с упорством единорога доказывает так "Теперь читаем определение полиморфизма понимаем что перегрузка является одним из его примеров и извиняемся переде дяденькой.".

Т.е. overload у него полиморфизм.
267 spock
 
23.05.16
16:27
(265) Чё, никто не разводится на срачь? :)
268 Рэйв
 
23.05.16
16:27
(265)типатого -Java бентли, а JavaScript -  лада-калина:-)
269 Oftan_Idy
 
23.05.16
16:30
Все это гавно. Ассемблер! Все остальное это костыли
270 Shurjk
 
23.05.16
16:30
(261) Определение тут не раз уже приводили. Достаточно того определения что указано в вики.
И тебе кстати тоже советую использовать их, а то то что ты пытаешься сам родить весьма смешно выходит.
271 spock
 
23.05.16
16:31
(270) А процитируй еще раз.
272 bolobol
 
23.05.16
16:32
(266) Что смущает, что перегрузка - полиморфизм?
273 Тролль главный
 
23.05.16
16:35
(272) в общем смысле полиморфизм, но:
1. в ООП под полиморфизмом понимают не overload, а override
2. пользы от такого полиморфизма никакого, если язык не динамический
274 Волшебник
 
модератор
23.05.16
16:35
(269) Баян. См (177)
275 ViSo76
 
23.05.16
16:43
(274) Нужно его забанить ненадолго для веселья.

PS: На самом деле на assebbler-е писать ещё то занятие... До сих пор не понимаю как реализован try catch... не на Int 3 же сидит...
276 Shurjk
 
23.05.16
16:43
(271) В гугле забанили? Можешь свои ссылки посмотреть там то же самое написано.
277 spock
 
23.05.16
16:48
(276) Из (33):
"The word polymorphism means having many forms. Typically, polymorphism occurs when there is a hierarchy of classes and they are related by inheritance.

C++ polymorphism means that a call to a member function will cause a different function to be executed depending on the type of object that invokes the function."

Где здесь про overload?

Да и образованные англоязычные люди тоже разделяют мою точку зрения: http://stackoverflow.com/questions/824763/is-polymorphism-another-term-for-overloading
278 Shurjk
 
23.05.16
16:58
(277) То есть это уже точка зрения? А не непреложная истина как ты в начале выдал? Ну что же прогресс налицо.
Кстати ты там ссылался на Страуструпа - у него есть такое определение полиморфизма - "один интерфейс, много реализаций"
И опять же ты тупо вообще не понимаешь о чем ты споришь, решил изначально понтанутся чем то что где то слышал но не понимаешь.
279 spock
 
23.05.16
16:59
1с-ники, которые ссылаются на wiki-статью, вы читали дальше первого абзаца?

Учу читать:
"В дальнейшем классификацию уточнил Лука Карделли[en][9], выделив четыре разновидности полиморфизма:
-универсальный
   - ...;
-ad hoc:
   - перегрузка;
   - ...;
"

Дальше поясняется значение ad hoc:
"
Латинский фразеологизм «ad hoc» (буквально «к случаю») имеет двойственное значение:

1) ...сделанный «на коленке»;
2) ...;
"

И эпилог:
"Действительно, ad hoc полиморфизм не является истинным полиморфизмом[5]. Перегрузка функций даёт не «значение, имеющее множество типов», а «символ, имеющий множество типов», но значения, идентифицируемые этим символом, имеют разные (потенциально не совместимые) типы. ".
280 Тролль главный
 
23.05.16
17:00
(278) overload под "один интерфейс, много реализаций" не подходит - интерфейсы как раз разные - в данном случае интерфейсом выступает сигнатура функции, так вот они разные
281 spock
 
23.05.16
17:01
+279 в английской версии полиморфизм понятнее. В русской же, wiki-программисты путаются в трех соснах.
282 Shurjk
 
23.05.16
17:05
(280) Где это они разные? Если интерфейс как раз остается неизменным а вот реализация уже зависит от контекста?
283 Shurjk
 
23.05.16
17:06
(281) То же самое и в английской версии написано. Ага трудности перевода прям.
284 spock
 
23.05.16
17:09
(283) ок, для тугих по-русски написано про overloading == adhoc полиморфизм, что это колхоз наколеночный.
285 Тролль главный
 
23.05.16
17:11
(282) для статических языков (C++,С#,Java,Delphi) сигнатура разная у функций
Foo(int x) и Foo(string x)

следовательно полиморфизма времени выполнения не может быть
да этот самый тупой adhoc, максимум пригодится для шаблонов в С++, но все равно времени компиляции
286 ViSo76
 
23.05.16
17:12
Прикиньте топикастр накинул на вентилятор и свалил, а тут уже "религиозные" войны пошли...
287 Shurjk
 
23.05.16
17:14
(284) Опять слышал звон не знаешь где он, приминительно к с++ это основы основ.
(285) Как бы про С++ и говорим тут, там это самый яркий можно сказать пример полиморфизма, понять полиморфизм на примерах виртуальных функций гораздо сложнее.
288 Тролль главный
 
23.05.16
17:15
(287) толку от adhoc как от козла молока в целом
289 spock
 
23.05.16
17:16
(287) Кисло ты слился.
290 ViSo76
 
23.05.16
17:18
Да ладно вам... Foo(int x) и Foo(string x) на уровне компиляции определяется что вызвать, а вызов метода у приведённого объекта к базовому, всего лишь call Объект:Смещение в таблице методов и нежен лишь для компилятора чтобы не ругаться. Полиморфизм это миф :)
291 Shurjk
 
23.05.16
17:19
(289) Угу я слился и перегрузка теперь не является примером полиморфизмом.
Добрый совет не пытайся кому то выставлять себя гуру в С++ занющие люди быстро тебя к плинтусу прижмут, хотя тебе все равно ты ведь не поймешь этого.
292 Господин ПЖ
 
23.05.16
17:20
тупая ветка
293 spock
 
23.05.16
17:21
(291) хы, ну ты чудной.
294 ViSo76
 
23.05.16
17:22
(291) Я думаю что Foo(int x) и Foo(string x) скорее всего полиморфизм из определения:

Полиморфи?зм в биологии (от др.-греч. ?????????? — многообразный) — способность некоторых организмов существовать в состояниях с различной внутренней структурой или в разных внешних формах.

https://ru.wikipedia.org/wiki/Полиморфизм_(биология)
295 Тролль главный
 
23.05.16
17:27
(294) какая польза от такого полиморфизма в С++?
296 Волшебник
 
модератор
23.05.16
17:28
(295) на свидании с девчонкой можно понтануться
297 ViSo76
 
23.05.16
17:31
(295) Это просто так называется и всё. Толк только один - чтобы программа откомпилировалось ( обойти типизацию ). Больше не для чего это не нужно.
298 Pixelrat
 
23.05.16
17:34
Так дальше пойдёт, и классификация злом окажется.
299 Shurjk
 
23.05.16
17:56
(297) Скомпилиируется и так без проблем, а вот при выполнении выпадет с ошибкой о несовместимости типов.
300 Карупян
 
23.05.16
18:13
(299) Ты про c++? В джаве например НЕ скомпилируется
301 Тролль главный
 
23.05.16
21:04
(296) или я стар или девочки изменились
302 Smallrat
 
24.05.16
10:19
303 los_hooliganos
 
24.05.16
11:12
Тема подошла к концу.
Надо обсудить ковариантность и почему его нельзя учитывать как сигнатуру метода.
304 Карупян
 
24.05.16
11:22
(301) Сейчас модно быть программистом
305 Карупян
 
24.05.16
11:22
Только нужно говорить, что в силиконовую долину скоро поедешь
306 los_hooliganos
 
24.05.16
11:25
(305) Станешь крутым 1С-ком, поедешь на Достоевскую, там будешь зарабатывать очень много денег. Квартиру себе в центре Москвы купишь.
307 Кирпич
 
24.05.16
11:39
Прочитал всю ветку. Так и не понял чем полиморфизм отличается от наследования.
308 Pixelrat
 
24.05.16
11:47
Что отличает мадам от мадемуазель?
-мсье!
309 Тролль главный
 
24.05.16
12:05
(307) забей, тебе это не надо