|
Чем полиморфизм отличается от наследования? Ø (Волшебник 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) забей, тебе это не надо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |