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

И вообще можно пример где есть наследование, но нет полиморфизма
1 ДенисЧ
 
23.05.16
07:12
Наследование - это у объекта есть методы родителя
Полиморфизм - это когда одну функцию можешь вызывать с разными параметрами.
Это коротко и для чайников
2 vvp91
 
23.05.16
07:22
Полиморфизм - способность метода обрабатывать параметры разных типов.
Наследование - способность объекта выдавать себя за родителя.

В 1С протокольно все процедуры и функции полиморфны, т.е. нет платформенного ограничения на тип передаваемых значений.
Например, есть в БСП функция ОбщегоНазначения.ЗначенияРеквизитовОбъекта, принимающая параметр Ссылка - этот параметр может быть любого ссылочного типа.
Еще пример, можно написать метод, принимающий параметр Объект, а внутри читающий от этого объекта два поля через точку (Дата, Номер). Тогда в этот метод можно передать:
- ссылку на любой документ
- или данные формы документа (основной реквизит Объект)
- или структуру с двумя этими полями
- или выборку из запроса с двумя этими полями
- или строку таблицы значений с двумя этими полями
- и т.д.
Это и есть полиморфизм.

Наследования в 1С нет. Хотя с появлением расширений конфигурации появляется "псевдонаследование", когда переопределяется поведение методов форм и модулей.
3 b_ru
 
23.05.16
07:34
(3) Наследование в 1С таки есть, но только то, что прошито в платформу, свои классы на основании родительских нельзя определять.
Например, класс "Документ.РеализацияТоваровУслуг" наследуется от класса "Документ" и т.п.
4 GenAcid
 
23.05.16
07:41
Насколько я помню полиморфизм это способность переопределять методы и свойства предка. Возможно не прав, давно по ООП теорию не читал.
5 Рэйв
 
23.05.16
07:46
(0)>>для меня это де факто одно и тоже.
хренасе одно и тоже.

Имхо, тупой вброс.
6 spock
 
23.05.16
07:48
(0) для какого языка программирования нужно?
7 los_hooliganos
 
23.05.16
07:49
(5) Скажем так, полиморфизм и наследование очень тесно связаны. Если считать это 2мя разными штуками.
Инкапсуляция где-то в сторонке от них.
Кстати обращение к свойству или методу через 2 точки как в (2) и есть нарушение правила инкапсуляции.
8 los_hooliganos
 
23.05.16
07:49
(6) Речь о JAVA
9 spock
 
23.05.16
07:52
10 los_hooliganos
 
23.05.16
07:53
Насчет вброса, я тут на выходных изучал рефлексию класса/объекта и у меня мозг окончательно взорвался.
11 Рэйв
 
23.05.16
07:53
(7)да нифига они не связаны.
для Полиморфизма нужно описывать каждый вариант вызова.А наследование указывается при создании класса. Учи мат часть ужеке
12 DDwe
 
23.05.16
07:57
(11) Тролит он и толсто очень. Он же не тупой.
13 Рэйв
 
23.05.16
07:58
(12)Да я так и понял с самого начала:-)
14 spock
 
23.05.16
08:02
Все что ли? Продолжения кина не будет?
15 Рэйв
 
23.05.16
08:04
(14)неинтересный троль попался:-)
16 spock
 
23.05.16
08:06
(15) Так-то ты не прав, если судить по (11)
17 los_hooliganos
 
23.05.16
08:06
(14) Автора на хабре раскритиковали, что полиморфизм нужон для интерфейсов, а не для наследников базового класса. Хотя в последнем случае он тоже работает.
18 Рэйв
 
23.05.16
08:10
(16)Ну обоснуй:-)
19 spock
 
23.05.16
08:13
(18) В компилируемых ЯП полиморфизм реализуется через наследование. Что еще обосновывать? Можно, конечно, изобрести велосипед, применив рефлексию или методы определения типов, но это колхоз.
20 Рэйв
 
23.05.16
08:14
(19)Полиморфизм вообще сд\лабо привязан к наследованию.
Я могу создать 50 вариантов описания вызова функции Foo(), но это ни на шаг не приблизит ее к классу и наследованию.
21 spock
 
23.05.16
08:16
(20) 50 определений функции - полиморфизм?
22 Рэйв
 
23.05.16
08:17
(21)Естественно.
23 spock
 
23.05.16
08:17
+21 я не понял логики в приведенном примере про 50 определений.
24 spock
 
23.05.16
08:17
(22) А, ну садись два :)
25 Рэйв
 
23.05.16
08:18
(21)Вызов одноименной функции с разными типами и количества параметров.
А что такое полиморфизм в твоем понимании?
26 butterbean
 
23.05.16
08:19
ничто не предвещало срача... хотя нет, предвещало
27 Рэйв
 
23.05.16
08:19
(24)ну ну:-)
28 woww
 
23.05.16
08:19
Полиморфизм это когда процедура может принимать значения разных типов. А наследование это когда один класс/объект может наследовать параметры от другого. Инкапсуляция это хранение данных вместо с кодом.
29 spock
 
23.05.16
08:19
(25) 50 определений функции - это не полиморфизм, а переопределение. Читать, например, тут: http://www.tutorialspoint.com/cplusplus/cpp_overloading.htm
30 Encode
 
23.05.16
08:19
(0) Полиморфизм это когда ты разные объекты объединяешь и обрабатываешь по одинаковым свойствам. Например у класса House и Car реализуем интерфейс Priceble (имеющие стоимость), и потом в коде ты можешь создать New ArrayList<Priceble>, запихнуть туда дом, машину, и вызывать у них методы своего интерфейса
31 Encode
 
23.05.16
08:20
(25) Это перезагрузка методов.
32 Рэйв
 
23.05.16
08:20
не..я больше тролей кормить не буду:-)
33 spock
 
23.05.16
08:22
(32) Правильно! Не нужно. Нужно просто почитать матчасть, например, там же рядом: http://www.tutorialspoint.com/cplusplus/cpp_polymorphism.htm
34 Encode
 
23.05.16
08:23
(30) Соответственно полиморфизм вытекает из наследования. Самый простой пример в java это класс Object - родитель всех классов. Ты можешь вообще любые объекты объединить в массив Object-ов и вызывать методы Object у всех них. Это и будет полиморфизм.
35 los_hooliganos
 
23.05.16
08:25
(25) Получается разные конструкторы одного и того же объекта и есть полиморфизм в 1с?
36 woww
 
23.05.16
08:29
(35) В 1с динамическая типизация. Значит по умолчанию все процедуры и функции полиморфны, т.к. могут принимать значения разных типов.
37 los_hooliganos
 
23.05.16
08:34
(19) В чем колхозность рефлексии?
Я так понимаю рефлексия нужна для разработки инструментов. Например написание калькулятора, который будет считать только по тем командам, которые я ему передам текстовым файлом.
38 spock
 
23.05.16
08:35
(35) Полиморфизм - это когда компилятор сам определяет, метод какого класса дернуть. Не какую из переопределенных функций, а именно метод какого класса.
39 spock
 
23.05.16
08:37
(37) Колхозность не рефлексии, а реализации полиморфизма через рефлексию.
40 spock
 
23.05.16
08:38
Коллеги, вы в институте пары по программированию прогуливали чтоли? :)
41 los_hooliganos
 
23.05.16
08:39
(40) Я вообще не ходил на программирование в институте, потому что его не было.
42 spock
 
23.05.16
08:40
(41) Все еще не понятно, что такое полиморфизм?
43 woww
 
23.05.16
08:41
(35) Какое нафиг ООП в 1с ? Ты не можешь создавать свои классы. Значит нету и ООП.
44 Рэйв
 
23.05.16
08:42
(42)да прочитай уже и успокойся:-)
https://ru.wikipedia.org/wiki/Полиморфизм_(информатика)
45 Рэйв
 
23.05.16
08:44
(42)"полиморфизмом называется способность функции обрабатывать данные разных типов"

Предельно доступно для понимания помоему:-)
46 los_hooliganos
 
23.05.16
08:45
(42) Примерно понятно. Непонятно почему он так сильно выделен от наследования. :)
47 spock
 
23.05.16
08:47
(44) Ты прочитал начало wiki-статьи и решил нас научить?
Читай дальше: "В сообществе объектно-ориентированного программирования под термином «полиморфизм» обычно подразумевают наследование, а использование параметрического полиморфизма называют обобщённым программированием[8], или иногда «статическим полиморфизмом»."
48 Рэйв
 
23.05.16
08:47
(47)просто мы спорим о частностях одного целого:-)
49 kauksi
 
23.05.16
08:49
А про инкапсуляцию забыли?
50 los_hooliganos
 
23.05.16
08:49
(49) Инкапсуляция это вьюшки и представления в SQL
51 spock
 
23.05.16
08:50
(46) Наследование - это расширение, переопределение функциональности. А полиморфизм - это способ реализации интерфейсного метода, через наследование.
52 Тролль главный
 
23.05.16
08:51
(1) и неверно
53 spock
 
23.05.16
08:51
(48) Я даже не пытался спорить. А так, да, можно сказать, что полиморфизм - это частность ООП'шного ЯП.
54 Тролль главный
 
23.05.16
08:52
Тупым 1Сникам это не нужно
55 ДенисЧ
 
23.05.16
08:55
(52) Обоснуй
56 spock
 
23.05.16
09:03
(46) Классическое объяснение:
Работают два программиста над проектом (java/c++). Один программирует взаимодействие пользователя с программой (нажатие кнопки "Рисовать фигуру"), другой - реализует конкретную реализацию рисования фигур "Круг" или "Квадрат".

Интерфейщик пишет такой код:
Процедура ПриРисовании(Фигуры* Фигура, handle НаЧемРисовать)
   Фигура->Рисовать(НаЧемРисовать);
КонецПроцедуры // ПриРисовании()

И он не знает, какая фигура будет рисоваться, да и не хочет знать.

Второму программисту-функциональщик приходится рисовать три класса:
1. Абстрактный Класс "Фигуры" с методом Рисовать(handle)
2. Прикладной класс "Круг" с методом Рисовать(handle)
2. Прикладной класс "Квадрат" с методом Рисовать(handle)

И в обоих классах "Круг" и "Квадрат" реализуется логика рисования конкретной фигуры.

и в момент вызова Фигура->Рисовать(НаЧемРисовать) компилятор сам определяет какой из классов использовать, чтобы вызвать конкретную реализацию метода. Т.е. в точке вызова нет контекста, есть только тип.

Сессно, что перед использованием ПриРисовании() нужно где-то написать так:
Фигуры* Фигура = new Круг()
или
Фигуры* Фигура = new Квадрат()
57 Лефмихалыч
 
23.05.16
09:04
(55) он хочет достебаться до "с разными параметрами", ведь они, строго говоря, не совсем разные
58 spock
 
23.05.16
09:04
(46) После (56) стало понятнее? :)
59 woww
 
23.05.16
09:05
(38) А если рантайм определяет какой метод какого класса дергнуть.  Это уже не полиморфизм?
60 spock
 
23.05.16
09:08
(59) в (38) акцент был не на компиляторе, а на выборе класса, чтобы вызвать одноименной метод.
61 Тролль главный
 
23.05.16
09:11
(57) наследование - способ построения новых типов через имеющиеся (базовые типы) с возможностью собственной специализации (новые методы, поля, свойства)

полиморфизм - изменение поведения функций (методов) подтипа по сравнению с базовым поведением
62 woww
 
23.05.16
09:12
(60) А я сразу подумал что там где вызов функции определяется динамически, а не при компиляции. Полиморфизм перестал быть полиморфизмом.
63 los_hooliganos
 
23.05.16
09:12
(58) Это все понятно.
64 rs_trade
 
23.05.16
09:12
Простой пример полиморфизма обычный + хотя бы в 1С. В одном случае складывает числа, в другом например строки. Интерфейс один, но результат разный и зависит от типа входных данных.
65 sash-ml
 
23.05.16
09:13
Полиморфизм методов(с разным количеством параметров) <> полиморфизму объектов с методами с одинаковой сигнатурой в одной иерархии наследования.
(38) - не копмилятор.
(59) + рантайм на этапе выполнения, так как неизвестно какой объект будет создан.
66 woww
 
23.05.16
09:16
(56) А если у меня динамический язычек,  в котором нету интерфейсов (т.к. не нужны) например JavaScript, то у меня уже нету полиморфизма?
67 Тролль главный
 
23.05.16
09:17
(64) да, потому что в 1С нет типизации
а вообще это совпадение сигнатур - не более

то есть вот это:

class A
{
public:
  void Test();
}


class B
{
public:
  void Test();
}

не полиморфизм, а просто совпадение имен
68 ViSo76
 
23.05.16
09:17
(1) ДенисЧ вызов функции с разными параметрами называется перегрузка функции. Это так для чайников.
(2) Есть тип переменной типа Variant это не полиморфизм.
(3) Полный бред. Есть прототип объекта документ, то что он работает с разным количеством полей это не означает наследование.
69 los_hooliganos
 
23.05.16
09:18
(64) вот полиморфизм toString() в 1С:
ОбработкаПолученияПредставления(<Данные>, <Представление>, <СтандартнаяОбработка>)
70 spock
 
23.05.16
09:18
(65)  "(38) - не копмилятор." - и да, и нет. Конечно же компилятор не знает, какой из классов в данном конкретном случае использовать на этапе компиляции. Компилятор в таких местах вставляет обвязку из таблиц виртуальных методов.
71 spock
 
23.05.16
09:21
(66) Мне кажется, я в (60) это пояснил. Дело не в компиляторе, дело в виртуальных таблицах.
72 woww
 
23.05.16
09:22
(69) Если хочешь "понять" проблемы полиморфизма. Возьми язычек со статической типизацией типа C#, Java. В динамике проблемы полиморфизма нету.
73 ViSo76
 
23.05.16
09:22
(71) Ты не правильно несколько пояснил в (56)
74 ViSo76
 
23.05.16
09:24
(69) Где ты увидел тут полиморфизм?
75 spock
 
23.05.16
09:24
(73) ? Поправь меня, делов-то.
76 Тролль главный
 
23.05.16
09:25
вот тут и наследование и полиморфизм в каком-то смысле:

https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/
77 woww
 
23.05.16
09:27
(69) В 1с динамика там все функции изначально полиморфны. Так как проверки типов нету. И по этому интерфесы не нужны. Интерфейсы нужны язычкам в которых типы проверяются на этапе компиляции, а не в рантайме.
78 ViSo76
 
23.05.16
09:27
(75) В общем представьте массив разных объектов ( circle, point, square ) порождённых от shape. В прототипе shape есть обязательно перегружаемая процедура show. Так вот идём по массиву и приводим получаемый элемент к базовому объекту и вызываем у них перегруженную функцию show. Это и будет полиморфизмом. То что переменные разных типов, так сам 1С не типизирован, и все переменные там Variant
79 spock
 
23.05.16
09:28
+75 Я понял в чем неточность. Конечно же прикладные классы "Круг" и "Квадрат" являются наследниками абстрактного класса "Фигуры".
80 spock
 
23.05.16
09:30
(78) Это будет делегатом.
81 Рэйв
 
23.05.16
09:32
(80)Делегат - это указатель на функцию.Вряд ли будет делегатом:-)
82 ViSo76
 
23.05.16
09:32
(80) Делегат это объект который содержит в себе вызов или батарею вызовов, а полиморфизм это изменение типа класса, тапа как хамелеон. И всё это связано лишь с тем что полиморфизм нужен лишь для типизированных языков.
83 Лефмихалыч
 
23.05.16
09:36
(61) >полиморфизм - изменение поведения функций (методов) подтипа по сравнению с базовым поведением

чааво?..
84 spock
 
23.05.16
09:36
(81) Делегат - это указатель на класс, реализующий в себе массив указателей на функции(ю).
85 Рэйв
 
23.05.16
09:37
(84)Все равно вряд ли будет:-)
86 spock
 
23.05.16
09:38
(85) Читаем буквально "...массив разных объектов ( circle, point, square ) порождённых от shape..." + "идём по массиву... и вызываем ...show...".
87 Тролль главный
 
23.05.16
09:38
(83) таво

в базовом метод выдавал "Му-му", переопределяешь и получаешь "Тра-та-та"
88 Лефмихалыч
 
23.05.16
09:39
+(83) какое в пень "изменять поведение"?
вот, на мой взгляд, отличное определение: https://habrahabr.ru/post/37576/
"Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового"

(87) ты бредишь
89 woww
 
23.05.16
09:39
(82) Ну не только для языков со статической типизацией. С хорошим полиморфизмом гораздо удобнее работать и в динамике. Ведь удобно когда  метод определяется не только проверкой типа, а еще может проверяет значение типа. Такое таким язычкам как C#, java и не снилось.
90 Dotoshin
 
23.05.16
09:40
(0) Все достаточно просто. Класс наследник получает от класса родителя все его свойства и методы так сказать по умолчанию, то есть есть все эти свойства будут присутствовать у наследника уже при "рождении" - это наследование. А полиморфизм - это многократное описание одного и того же метода для разных случаев. При этом не важно был этот метод унаследован или был описан "с нуля".
Например класс может иметь метод "сложить", в зависимости от типа параметров он будет действовать по разному. Получит на входе две строки - на выходе будет конкатенация этих строк.
Получит два числа - на выходе будет сумма чисел. Ну и т.д.
91 Тролль главный
 
23.05.16
09:41
(88) не, это ты тупишь
92 Рэйв
 
23.05.16
09:42
(88)Как ни жаль но он прав.
Если стоит overload в ролительстком, то в наследуемом классе можешь написать там что угодно.
93 Лефмихалыч
 
23.05.16
09:42
(91) "му-му" и "тра-та-та"
94 Локи-13
 
23.05.16
09:43
(88) я тоже хотел на хабр сослаться (
95 Dotoshin
 
23.05.16
09:43
(83) Все правильно в (61) сказано. Может существовать класс с абстрактным методом - это как бы базовое поведение, а в классах наследниках будет описано поведение этого метода для разных типов параметров.
96 Лефмихалыч
 
23.05.16
09:44
(92) к полиморфизму это каким боком? Это наследование, точнее возможности управления наследованием в разных языках. Полиморфизм - это когда ты делаешь один метод с неким поведением относительно базового класса и в него можшь передавать любых потомков этого базового класса
97 woww
 
23.05.16
09:45
(88) Настоящий полиморфизм. Это когда рантайм может выбирает метод, на основе произвольной функций. Например функция может проверить тип, значение или внешнее состояние и вызвать соответствующий метод.
98 Рэйв
 
23.05.16
09:46
(96)это безспорная истина:-)
99 Рэйв
 
23.05.16
09:47
(96)делай скидки, что большинство участников дискуссии - троли:-)
100 woww
 
23.05.16
09:48
(96) А полиморфизм на основе мультиметодов, это уже не полиморфизм?
101 Тролль главный
 
23.05.16
09:50
(96)

class A
{
  public virtual string Test() {return "Муму";}
}

class XA: A
{
  public override string Test() {return "Тратата";}
}

A a1 = new A();
string s1=a1.Test();

A a2 = new XA();
string s2=a2.Test(); //полиморфный вызов
102 woww
 
23.05.16
09:51
(98) Не бесспорная. Я кроме этой знаю еще 2 реализации полиморфизма. 1) На основе мультиметодов. 2)На основе систем типов. Это если не считать динамических язычков где вообще можно что угодно делать и определять полиморфизм как угодно.
103 Dotoshin
 
23.05.16
09:57
(0) Вот ссылка https://vk.com/doc98893819_254664798?hash=aaa19faa2c7bffdc35&dl=19c8c9902fae2b14b6
на странице 164 объясняется что такое полиморфизм и чем он отличается от наследования
104 woww
 
23.05.16
09:59
(0) Ты если будешь читать про "паттерны ООП", не вздумай их изучать на динамических языках или тем более 1С. В динамике половины тех проблем нету, которые есть в языках со статической типизацией (c#, java и т.п.).
105 Живой Ископаемый
 
23.05.16
10:01
а когда у одной функции несколько сигнатур - это полиморфизм?
106 Локи-13
 
23.05.16
10:02
Полиморфизм - это когда каждый мистянин трактует определение "Полиморфизма" по разному.
107 los_hooliganos
 
23.05.16
10:02
(101) Почему полиморфный? a2 хоть и формируется через конструктор ХA, в итоге будет все равно приведен к типу А
108 Тролль главный
 
23.05.16
10:03
(107) это С#, там не как в C++
109 los_hooliganos
 
23.05.16
10:04
(108) Хм... ну значит в java так же как в с==
110 los_hooliganos
 
23.05.16
10:04
(109) + как в с++
111 Локи-13
 
23.05.16
10:05
Наследование это когда один мистянин цитирует другого, и немного его поправляет.
112 Тролль главный
 
23.05.16
10:06
(109) в джава как раз как в шарпе
113 ViSo76
 
23.05.16
10:06
Простым языком наследование, это типа "копирование" всего от родителя в возможностью переопределять методы, если дано такое право и добавлять что-то своё ( переменные, процедуры или функции ). В общем расширять объект. К примеру есть объект TPoint содержащий координаты X и Y и всего 1 перегружаемую процедуру Show. На основе TPoint создадим класс Circle. Для этого наследуем TPoint. Соответственно нам нужно добавить в новый класс переменную R - радиус, и перегрузить метод Show чтобы отображать круг. Далее создадим на основе Circle класс Целиндр, который будет иметь ещё и высоту. А полиморфизмом соответственно будем вызывать методы Show из массива для всех фигур, это будет маленький Corel Draw если добавим метод Hide и Move и работу с мышкой для объектов.
114 Dotoshin
 
23.05.16
10:08
(106) (111) Лучший ответ! :)
115 xxTANATORxx
 
23.05.16
10:11
было уже?

Инст. Допконсультация. Умаявшийся препод бьется с тупым студентом, в уголке сидит аспирант, жует печеньки, запивает чаем и чатится в аське. Препод, задолбавшись объяснять студенту, что такое полиморфизм, зовет аспера и говорит студенту:
- Так, смотри сюда! Вот Андрей - это полиморфная функция. Что у него на входе?
- Эээээ...
- На входе у него чай и печенье! А что у него на выходе?
- О_О!
- На выходе у него, твою мать, строка символов! Андрей, у тебя есть еще что-нибудь поесть?
- Эээээ... ну, шоколадка есть!
- Съешь ее!
Офигевающий аспирант разворачивает шоколадку и начинает ее поглощать. Препод:
- Вот теперь у него на входе шоколадка. Что на выходе будет?
- Эээ...
- Идиот! Щас он доест, сядет за комп и опять будет трепаться! На выходе снова будет строка символов! Хоть его, мать твою, артишоками накорми - на выходе будет строка символов! Он полиморфная функция!!! Понял?
116 los_hooliganos
 
23.05.16
10:20
(113) Что значит Т в начале имени класса?
117 spock
 
23.05.16
10:21
(101) Верно. Верно даже для с++.
118 Тролль главный
 
23.05.16
10:22
(117) для С++ это верно было бы, если бы юзались ссылки или указатели на объекты, а не сами объекты
119 spock
 
23.05.16
10:23
(118) Мы же за подход говорим.
120 Тролль главный
 
23.05.16
10:24
(119) я про конкретный написанный мною пример
121 DDwe
 
23.05.16
10:25
(116) Слабо троллишь. )))
122 Dotoshin
 
23.05.16
10:28
(117) Есть некоторые "неписанные" правила и соглашения, типа этих https://habrahabr.ru/post/172091/
123 spock
 
23.05.16
10:33
(122) ?
124 Dotoshin
 
23.05.16
10:38
(123) Сорри, промазал. (122) было к (116)
125 ViSo76
 
23.05.16
10:51
(116) Ничего не значит, просто название. Обычное для pascal
126 Shurjk
 
23.05.16
10:58
Какая бурная дискуссия, вроде в вики все написано?
Автор если непонятно посмотри по поводу перегрузки операторов и функций, там поймешь что такое полиморфизм.
127 bolobol
 
23.05.16
11:25
Функция ПривестиЗначение(А :целое){ возврат А; }
Функция ПривестиЗначение(А :дробное){ возврат округлить(А); }

- это, простите тогда, как называется?
128 Тролль главный
 
23.05.16
11:27
(127) это зависит от языка
в нетипизированных вполне полиморфизм
в строготипизированных это две одноименные функции с разной сигнатурой (overload)
129 Asmody
 
23.05.16
11:52
130 Asmody
 
23.05.16
11:53
(129)+ для взрыва мозга достаточно Введение прочитать.
131 Xapac
 
23.05.16
11:54
яверы тут чтоли?

JavaFX кто-нить использовал?
132 Shurjk
 
23.05.16
12:09
(131) Тут в основном 1с-ки, выпускнкики, курсов воспитаники франчей, держатели сертификатов от 1с и прочий сброд недоучек, потому  и возникла такая бурная дискуссия по данному вопросу.
133 Dotoshin
 
23.05.16
12:13
(132) >> ...и прочий сброд недоучек...
Ты за всех-то не говори.
134 Рэйв
 
23.05.16
12:21
(132)Интересно послушать к какой категории ты относишь себя?
-выпускнкики курсов
-воспитаники франчей
-держатели сертификатов от 1с
-прочий сброд недоучек,

а?
135 ДенисЧ
 
23.05.16
12:22
(129) Зачем нужен хаскель, если есть православный с++?
136 Shurjk
 
23.05.16
12:22
(134) К тем у кого не возникает вопроса по поводу того чем полиморфизм отличается от наследования.
137 Тролль главный
 
23.05.16
12:23
(135) православный С++ теперь как раньше ассемблер
производителен, но тяжел в обслуживании
138 Dotoshin
 
23.05.16
12:24
(134) Давай лучше с тебя начнем.
139 Рэйв
 
23.05.16
12:24
(136)Ну у меня вот тоже не возникает:-). Тем не менее пообщаться с людьми не чураюсь.
140 ДенисЧ
 
23.05.16
12:24
(136) У моей мамы такого вопроса не возникает....
(137) Руки нужно прямые иметь...
141 Рэйв
 
23.05.16
12:25
(138)Я "воспитанник франчей" наверное.:-) Что греха таить.Было дело в молодости.А ты?:-)
142 Dotoshin
 
23.05.16
12:26
(136) Ну у меня такого вопроса не возникает, но и сбродом на этом форуме я никого не считаю.
143 DomovoiVShoke
 
23.05.16
12:30
(0)Когда учился понял одно: если не использовать эти слова, то программить будет легче, а также легче будет твоим собеседникам)
144 Dotoshin
 
23.05.16
12:30
(141) Ну тогда пожалуй тоже "воспитанник франчей".
145 Рэйв
 
23.05.16
12:33
(144)пора создавать партию и идти на выборы:-)
146 Локи-13
 
23.05.16
12:34
(136) а что ты в этой теме делаешь?
вопроса у тебя нет, но и ответ ты не дал.
147 spock
 
23.05.16
12:35
(136) Так твое "Автор если непонятно посмотри по поводу перегрузки операторов и функций, там поймешь что такое полиморфизм." как понимать тогда?

Посмотреть на перегрузки функций и понять, что overload/override к полиморфизму отношения не имеет?
148 Dotoshin
 
23.05.16
12:36
(145) Какая интересная мысль однако :)))
149 bolobol
 
23.05.16
12:38
(136) Так и ответа, верно, нет, да?
150 Рэйв
 
23.05.16
12:38
(148)Да порвем ЕдРо как бобик грелку!:-))
151 ДенисЧ
 
23.05.16
12:44
(145) Мда... Во что лучше вступить: в коровье или собачье?
152 Shurjk
 
23.05.16
12:49
(146) Кстати дал.
153 Shurjk
 
23.05.16
12:51
(147) Как говорится смотрим в кингу видим фигу, а все почему отсутствие базовых навыкоу дает о себе знать.
154 spock
 
23.05.16
12:55
(153) Ты еще один неуд, который прогуливал пары по c++?
155 Shurjk
 
23.05.16
13:00
(154) В отличии от тебя у меня они хотя бы были. И давали на них как раз те темы которые так будоражат мозги 1с-ков, а не тупо писали привет мир.
156 spock
 
23.05.16
13:01
Коллеги, вы палитесь зачем так?

От обратного:
Полиморфизм - это парадигма из ООП, где есть классы (новые типы). Т.е. полиморфизм может быть, при наличии классов (явные/неявные).
А перегрузка (overload/override) применяется к свободным функциям, а так же методам классов. Т.е. наличие overload/override не реализует полиморфизм.
157 spock
 
23.05.16
13:02
(155) Ага, вижу какой результат оставили в голове.
158 Рэйв
 
23.05.16
13:02
(151)С волками жить-...(С)
:-)
159 Asmody
 
23.05.16
13:03
(156) "Полиморфизм - это парадигма из ООП" — только функциональщикам такую чушь не говори.
160 Shurjk
 
23.05.16
13:04
(156) Без комментариев, кто знает поймет, а остальным думаю все равно. Давай лучше дальше переходить на личности, определения это не твое, в вики на порядок лучше нвписано.
161 ДенисЧ
 
23.05.16
13:04
(158) то есть предлагаешь вступать в волчье? Спасибо....
162 Рэйв
 
23.05.16
13:06
(161)Ну, если не хочешь быть жертвой, придется быть хищником.
163 los_hooliganos
 
23.05.16
13:06
К сожалению во франчайзи не учат мыслить в рамках ООП.
164 spock
 
23.05.16
13:06
(159) Молодец, чё! Фразу вырвал из контекста и бегаешь довольный.
165 spock
 
23.05.16
13:07
(160) Какую wiki, очнись. В (29) и (33) я привел ссылки. Читай, развивайся.
166 Рэйв
 
23.05.16
13:09
(163)оно им и не надо. В детском садике тоже не учат высшей математике. Это просто начальный уровень.
167 Shurjk
 
23.05.16
13:14
(165) Те же самые ссылки на определения. Так что возвращаемся к (153)
168 Shurjk
 
23.05.16
13:15
+(167)  Вопрос наводящий для чего используют перегрузки?
169 spock
 
23.05.16
13:17
(167) "Те же самые ссылки на определения." - не авторитетный источник или что?

Людям, читавших Страуструпа, и писавших на c++, моих ссылок будет достаточно.
170 Shurjk
 
23.05.16
13:18
(169) Как видишь не факт.
171 spock
 
23.05.16
13:18
(170) Я хз тогда, ищи причину в себе :)
172 Shurjk
 
23.05.16
13:19
(171) На (169) Сможешь ответить?
173 Рэйв
 
23.05.16
13:20
(171)(172) Мне одному кажется, что вы из пустого в порожнее переливаете?:-)
174 spock
 
23.05.16
13:21
(172) На (168)? Могу.
175 ViSo76
 
23.05.16
13:22
Что вы всё спорите и спорите... Полиморфизма на уровне машинных кодов нет, это миф :)
176 Shurjk
 
23.05.16
13:23
(174) Давай.
177 Рэйв
 
23.05.16
13:24
(175)Да вообще все языки выше ассемблера - это костыли:-)
178 los_hooliganos
 
23.05.16
13:27
(177) 1С на вершине пищевой цепочки?
179 Gary417
 
23.05.16
13:28
(177) да и ассемблер, если вдуматься, тоже костыли
180 los_hooliganos
 
23.05.16
13:29
1С не нападет на клиента напрямую. А идет как-бы боком. Сначала подкидывается типовая бухгалтерия... И шаг за шагом клиент погружается в сети 1С и в итоге вынужден нанять 1С-ника.
181 Shurjk
 
23.05.16
13:31
(180) Самое главное не давать ему задуматься о том зачем ему вообще 1с. Есть фирма надо ставить - здесь без вопросов.
182 ViSo76
 
23.05.16
13:31
(180) Ты хочешь сказать что скайнет живёт с 1С?
183 Рэйв
 
23.05.16
13:32
(179)Ну да. В машинных кодах все таки неудобно как то было кодить.
184 spock
 
23.05.16
13:32
Занятно, 1с-ник меня экзаменует по крестам :)

(176) overload - нужен для переопределения одноименной функции с новыми параметрами как по их количеству, так и по типу. Используется для того, чтобы лаконично описать программируемое действие, не вдаваясь в подробности типов параметров. Т.е. отдавая возможность компилятору самому подставлять ту версию функции, которая больше подходит по передаваемые параметры.

override - тоже самое, но обычно термин используется тогда, когда хотим показать, что поведение функции меняется.
185 Shurjk
 
23.05.16
13:34
(184) Теперь читаем определение полиморфизма понимаем что перегрузка является одним из его примеров и извиняемся переде дяденькой.
186 Рэйв
 
23.05.16
13:35
(185)Я уже сто постов назад ему говорил, что спорим о частных проявлениях, все никак не уймется:-)
187 Тролль главный
 
23.05.16
13:36
(178) 1С это велосипед с квадратными колесами
188 Рэйв
 
23.05.16
13:43
(187)да ладно. Единственное западло с их стороны- это то, что свои классы определять нельзя.Но тут их можно понять.Нафик они тогда кому нужны были бы, если каждый могбы под себя 2С сделать.
189 Jokero
 
23.05.16
13:44
(0)Наследование, это когда новый автомобиль феррари является спортивным феррари.
А полиморфизм это когда ты на феррари мешки с картошкой возишь.
190 Рэйв
 
23.05.16
13:45
(189)..А иногда и мешки с капустой:-)
191 Тролль главный
 
23.05.16
13:49
(188) кто? вто кто придумал это?

https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/

какие-то аннотации вместо обычных виртуальных функций
192 spock
 
23.05.16
13:51
(185) Какое определение? Из wiki? Ну тогда см. (47)

Дяденька начало ветки не читал и решил другого дяденьку уму-разуму поучить, да? :)
193 Рэйв
 
23.05.16
13:51
(191)У них изначально была ущербная схема, и потом просто пришлось подчинять всей идеологии остальное. Может и рады были бы соскочить, но было уже поздно:-)
194 Pixelrat
 
23.05.16
13:54
(0) "И вообще можно пример где есть наследование, но нет полиморфизма"
У всех кошек четыре лапы, но не всё с четырьмя лапами - кошки. Т.е. можно привести пример где есть полиморфизм, но нет наследования и их тут уже понаприводили.
195 Shurjk
 
23.05.16
13:55
(192)вообще в твоем (47) написно практически слово в слово то же что и в вики.
196 Волшебник
 
модератор
23.05.16
13:55
1С — объектно-ориентированная платформа
197 Рэйв
 
23.05.16
13:56
(196)Онли "для разработчиков платформы" :-)
198 ДенисЧ
 
23.05.16
13:57
(196) Давайте не путать объектно-ориентированную и объектную среды...
199 spock
 
23.05.16
13:57
(195) ыы, почитай-ка ты, дяденька, ветку с самого начала.
200 ДенисЧ
 
23.05.16
13:57
(197) Создай новый документ. У него уже будут метод Записать() и мемберы Дата и Номер....
201 Рэйв
 
23.05.16
13:58
(200)А у меня может душа требует
class My:РасходнаяНакладная
:-)
202 Волшебник
 
модератор
23.05.16
13:59
(198) Давай не путать.
В 1С есть инкапсуляция, наследование и полиморфизм - три кита ООП.
203 ДенисЧ
 
23.05.16
13:59
(201) Если душа требует - прими.
(202) К чёрту перья, я должен видеть это!
204 Рэйв
 
23.05.16
14:00
(203)Я то приму, а вот 1С нет:-)
205 ViSo76
 
23.05.16
14:00
Да не выйдет ООП для 1С. Вся абстракция от железа и связанна с тем что объекты определены и их нельзя модифицировать, можно только изменять поведение.
206 ДенисЧ
 
23.05.16
14:03
(204) А ты ей тоже.
(205) в 77 вышло.А чем 8* хуже?
207 Волшебник
 
модератор
23.05.16
14:04
(205) Про модификацию объектов Гради Буч ничего не говорил. Давай ориентироваться на классиков. Объекты даны нам в ощущениях как объективная реальность.
208 ДенисЧ
 
23.05.16
14:05
(207) TPoint vs TCircle
209 ДенисЧ
 
23.05.16
14:05
И про таких Буч писал.
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) забей, тебе это не надо
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс