[ООП] Полиморфизм
От: Аноним  
Дата: 21.02.11 19:24
Оценка:
Помогите, пожалуйста, определиться с выражениями, которые отображают сущность полиморфизма.


  1. Polymorphism is a process by which a class can exist in multiple forms
  2. Polymorphism is a process by which a class can exist in only two forms
  3. Polymorphism is a process by which objects of a reference type can display different behavior
  4. Polymorphism is a process by which different instances of the same class display different behavior
  5. Polymorphism allows old code in a class library to call new code written by a programmer that derives a class from a class in the class library
Как мне кажется, верными будут 3-й (перегрузка методов) и 5-й (virtual методы) ответы. Как вы считаете?
Re: [ООП] Полиморфизм
От: Курилка Россия http://kirya.narod.ru/
Дата: 21.02.11 19:26
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Помогите, пожалуйста, определиться с выражениями, которые отображают сущность полиморфизма.

А>

    А>
  1. Polymorphism is a process by which a class can exist in multiple forms
    А>
  2. Polymorphism is a process by which a class can exist in only two forms
    А>
  3. Polymorphism is a process by which objects of a reference type can display different behavior
    А>
  4. Polymorphism is a process by which different instances of the same class display different behavior
    А>
  5. Polymorphism allows old code in a class library to call new code written by a programmer that derives a class from a class in the class library
    А>
А>Как мне кажется, верными будут 3-й (перегрузка методов) и 5-й (virtual методы) ответы. Как вы считаете?

Только вот полиморфизм существует не только в рамках ООП
Re[2]: [ООП] Полиморфизм
От: 0x7be СССР  
Дата: 21.02.11 19:31
Оценка: :)
Здравствуйте, Курилка, Вы писали:

К>Только вот полиморфизм существует не только в рамках ООП

Еретик!
Re: [ООП] Полиморфизм
От: dilmah США  
Дата: 21.02.11 19:34
Оценка: +1
А>Как мне кажется, верными будут 3-й (перегрузка методов) и 5-й (virtual методы) ответы. Как вы считаете?

1 тоже подходит б/п
Re[2]: [ООП] Полиморфизм
От: kvser  
Дата: 21.02.11 19:54
Оценка:
Здравствуйте, dilmah, Вы писали:

D>1 тоже подходит б/п


только, как я думаю, это самый верный
Re[2]: [ООП] Полиморфизм
От: Аноним  
Дата: 21.02.11 20:11
Оценка:
Здравствуйте, dilmah, Вы писали:

D>1 тоже подходит б/п

А что вы подразумеваете под существованием класса в множественных формах?
Re: [ООП] Полиморфизм
От: Steamus Беларусь  
Дата: 21.02.11 20:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Polymorphism is a process by which a class can exist in multiple forms


— Процесс, в котором некоторый класс может существовать во множестве форм/вариантов.

Нет. Это не попадает под понятие программного полиморфизма (это в житейском смысле полиморфизм)

А> Polymorphism is a process by which a class can exist in only two forms


— Процесс, в котором некоторый класс может существовать только в двух формах.

Нет, не попадает. Ни в двух, ни в трёх... Ни даже в четырёх.

А> Polymorphism is a process by which objects of a reference type can display different behavior


— Процесс, в котором некоторая ссылка на объект (объект ссылочного типа) может демонстрировать различное поведение.

Да. Это канонический полиморфизм. Поскольку ссылка может содержать адреса объектов разных классов, имеющих общего предка, но разное поведение.

А> Polymorphism is a process by which different instances of the same class display different behavior


— Процесс, в котором различные экземпляры одного класса демонстрируют разное поведение.

Нет. Никакого полиморфизма. Экземпляры одного класса должны демонстрировать одинаковое поведение. Если демонстрируют разное, то что то не так с программой.

А> Polymorphism allows old code in a class library to call new code written by a programmer that derives a class from a class in the class library


— Полиморофизм позволяет старому коду из некоторой библиотеки вызвать новый код, написанный программером который унаследовал свой класс от библиотечного класса.

Да. Техническая поддержка полиморфизма позволяет это делать.
Re: [ООП] Полиморфизм
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.02.11 12:01
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Помогите, пожалуйста, определиться с выражениями, которые отображают сущность полиморфизма.



А>

    А>
  1. Polymorphism is a process by which a class can exist in multiple forms
    А>
  2. Polymorphism is a process by which a class can exist in only two forms
    А>
  3. Polymorphism is a process by which objects of a reference type can display different behavior
    А>
  4. Polymorphism is a process by which different instances of the same class display different behavior
    А>
  5. Polymorphism allows old code in a class library to call new code written by a programmer that derives a class from a class in the class library
    А>
А>Как мне кажется, верными будут 3-й (перегрузка методов) и 5-й (virtual методы) ответы. Как вы считаете?

Вот здесь нужно прочесть

http://www.rsdn.ru/forum/philosophy/2853873.1.aspx
Автор: Gaperton
Дата: 26.02.08
Re: [ООП] Полиморфизм
От: Jolly Roger  
Дата: 22.02.11 12:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как мне кажется, верными будут 3-й (перегрузка методов) и 5-й (virtual методы) ответы. Как вы считаете?


Я бы 5-й не выбрал.
"Нормальные герои всегда идут в обход!"
Re: [ООП] Полиморфизм
От: v.a.v СССР  
Дата: 22.02.11 17:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Помогите, пожалуйста, определиться с выражениями, которые отображают сущность полиморфизма.


А>
  • Polymorphism is a process by which different instances of the same class display different behavior

    Мне кажется, что имеется ввиду следующее:
    Есть класс A, у класса A есть классы потомки B и C.
    Классы B и C переопределяют виртуальный метод M (каждый по своему).
    Есть экземпляры B и C BObj и СObj соответственно.
    Ссылки на BObj и СObj присвоим переменным AObjB и AObjC типа A.
    При вызове метода M у AObjB и AObjC получим разное поведение. А ведь AObjB и AObjC одного типа(класса).

    Достаточно чтобы "same class" был общим предком.
    Мне кажется как раз 4 вариант отражает суть полиморфизма. Объект некоторого типа, также является и объектом всех типов-предков. Какой то каламбур получился.
  • Re[2]: [ООП] Полиморфизм
    От: Steamus Беларусь  
    Дата: 22.02.11 18:20
    Оценка:
    Здравствуйте, v.a.v, Вы писали:

    VAV>Мне кажется как раз 4 вариант отражает суть полиморфизма. Объект некоторого типа, также является и объектом всех типов-предков. Какой то каламбур получился.


    4 вариант говорит о том, что различные экземпляры одного и того же класса будут иметь разное поведение. Другими словами, есть у вас класс — Запорожец 968М. И вот некоторые машины этого класса, сошедшие с одного конвейера имеют характеристики БМВ, другие — Мерседеса. Некоторые вообще на самокат похожи. И это всё волшебный и неповторимый полиморфный класс — Запорожец 968М!

    Это не то что бы полиморфизм, это просто гиперполиморфизм!
    Re[3]: [ООП] Полиморфизм
    От: v.a.v СССР  
    Дата: 22.02.11 18:38
    Оценка:
    Здравствуйте, Steamus, Вы писали:

    S>Здравствуйте, v.a.v, Вы писали:


    VAV>>Мне кажется как раз 4 вариант отражает суть полиморфизма. Объект некоторого типа, также является и объектом всех типов-предков. Какой то каламбур получился.


    S>4 вариант говорит о том, что различные экземпляры одного и того же класса будут иметь разное поведение. Другими словами, есть у вас класс — Запорожец 968М. И вот некоторые машины этого класса, сошедшие с одного конвейера имеют характеристики БМВ, другие — Мерседеса. Некоторые вообще на самокат похожи. И это всё волшебный и неповторимый полиморфный класс — Запорожец 968М!


    S>Это не то что бы полиморфизм, это просто гиперполиморфизм!


    Имеется ввиду что объекты сходящие с конвейера автомобильного завода являются не только Запорожцами и Мерседесами, но в той же степени Автомобилями и ТранспортнымиСредсвами. Естественно что два разных Автомобиля могут проявлять разное поведение.
    Re[4]: [ООП] Полиморфизм
    От: Steamus Беларусь  
    Дата: 22.02.11 19:05
    Оценка:
    Здравствуйте, v.a.v, Вы писали:

    VAV>Имеется ввиду что объекты сходящие с конвейера автомобильного завода являются не только Запорожцами и Мерседесами, но в той же степени Автомобилями и ТранспортнымиСредсвами. Естественно что два разных Автомобиля могут проявлять разное поведение.


    Верно. И с точки зрения интерфейсов Автомобилей и Транспортных систем они будут иметь идентичное поведение. А та разница в повыедении, которая им будет присуща, найдёт отражение в названии их фактического класса (который наследник этих двух).

    По сути, вы хотите сказать, что и Запорожец и Грузовик, относятся к Автомобилям, но при этом имеют разное поведение. Это лишь частично так. В контексте того, что означает слово Автомобиль, они имеют идентичное поведение. А их разница разнесёт их по разным классам наследникам. Скажем — Запорожец 968 и Белаз 7921.
    Re[5]: [ООП] Полиморфизм
    От: v.a.v СССР  
    Дата: 22.02.11 19:56
    Оценка:
    Здравствуйте, Steamus, Вы писали:

    S>Верно. И с точки зрения интерфейсов Автомобилей и Транспортных систем они будут иметь идентичное поведение. А та разница в повыедении, которая им будет присуща, найдёт отражение в названии их фактического класса (который наследник этих двух).


    S>По сути, вы хотите сказать, что и Запорожец и Грузовик, относятся к Автомобилям, но при этом имеют разное поведение. Это лишь частично так. В контексте того, что означает слово Автомобиль, они имеют идентичное поведение. А их разница разнесёт их по разным классам наследникам. Скажем — Запорожец 968 и Белаз 7921.


    Считаете ли вы, что объект являющийся членом класса, входящего в иерархию классов, также является членом каждого класса-предка в иерархии?
    Если да, то будем считать, что объект является членом некоторого множества классов.
    Есть два объекта, принадлежащие некоторым пересекающимся множествам классов.
    Можно ли считать, что эти два объекта принадлежат одному классу(из области пересечения)?
    Если да, то видимо это и имел ввиду автор высказывания: "Polymorphism is a process by which different instances of the same class display different behavior"

    Если вы не согласны с логикой рассуждений, то у нас скорее всего терминологические разногласия.
    Я не утверждаю что моя терминология верна. Я лишь хочу сказать, что мог иметь ввиду автор высказывания.
    Re[6]: [ООП] Полиморфизм
    От: Steamus Беларусь  
    Дата: 22.02.11 20:21
    Оценка:
    Здравствуйте, v.a.v, Вы писали:

    VAV>Здравствуйте, Steamus, Вы писали:

    >> Я лишь хочу сказать, что мог иметь ввиду автор высказывания.

    Мне не важно, что потенциально мог иметь в виду автор высказывания. Полиморфизм, это много форм. Соответственно, если вы мнёте в кулаке свои носки, то это уже можно назвать полиморфизмом. И эти вещи можно обсасывать бесконечно.

    Но мы находимся в контексте софтверной индустрии. И этот контекст накладывает некоторые ограничения, дабы дискуссия не выглядела абсурдной. И данный постулат в этом контексте не верен. В софте, разные программные экземпляры одного и того же класса имеют строго одинаковое поведение. И тут не нужно домысливать и философствовать. Так устроены ООП языки программирования. Иначе программа будет просто неуправляема и непредсказуема.
    Re[7]: [ООП] Полиморфизм
    От: v.a.v СССР  
    Дата: 23.02.11 16:14
    Оценка:
    Здравствуйте, Steamus, Вы писали:

    S>Здравствуйте, v.a.v, Вы писали:


    VAV>>Здравствуйте, Steamus, Вы писали:

    >>> Я лишь хочу сказать, что мог иметь ввиду автор высказывания.

    S>Мне не важно, что потенциально мог иметь в виду автор высказывания. Полиморфизм, это много форм. Соответственно, если вы мнёте в кулаке свои носки, то это уже можно назвать полиморфизмом. И эти вещи можно обсасывать бесконечно.


    S>Но мы находимся в контексте софтверной индустрии. И этот контекст накладывает некоторые ограничения, дабы дискуссия не выглядела абсурдной. И данный постулат в этом контексте не верен. В софте, разные программные экземпляры одного и того же класса имеют строго одинаковое поведение. И тут не нужно домысливать и философствовать. Так устроены ООП языки программирования. Иначе программа будет просто неуправляема и непредсказуема.


    Уважаемый, думаю домысливаете именно вы. Так как все зависит от того, что именно, вы понимаете под "экземплярами одного класса".

    Кроме того:
    А> Polymorphism is a process by which objects of a reference type can display different behavior

    S>— Процесс, в котором некоторая ссылка на объект (объект ссылочного типа) может демонстрировать различное поведение.


    S>Да. Это канонический полиморфизм. Поскольку ссылка может содержать адреса объектов разных классов, имеющих общего предка, но разное поведение.

    Вы неверно перевели высказывание.
    Верный перевод:
    Процесс, в котором объекты ссылочного типа могут демонстрировать различное поведение.
    А это, либо само собой разумеется(и ни какого отношения к полиморфизму не имеет), если имеются ввиду разные объекты, либо полный бред, если имеется ввиду один и тот же объект.

    Пятый вариант — лишь одно из следствий полиморфизма.
    Re[8]: [ООП] Полиморфизм
    От: Steamus Беларусь  
    Дата: 23.02.11 22:18
    Оценка:
    Здравствуйте, v.a.v, Вы писали:

    VAV>Здравствуйте, Steamus, Вы писали:


    VAV>Уважаемый, думаю домысливаете именно вы. Так как все зависит от того, что именно, вы понимаете под "экземплярами одного класса".


    VAV>Кроме того:

    А>> Polymorphism is a process by which objects of a reference type can display different behavior

    S>>— Процесс, в котором некоторая ссылка на объект (объект ссылочного типа) может демонстрировать различное поведение.


    S>>Да. Это канонический полиморфизм. Поскольку ссылка может содержать адреса объектов разных классов, имеющих общего предка, но разное поведение.

    VAV>Вы неверно перевели высказывание.
    VAV>Верный перевод:
    VAV>Процесс, в котором объекты ссылочного типа могут демонстрировать различное поведение.
    VAV>А это, либо само собой разумеется(и ни какого отношения к полиморфизму не имеет), если имеются ввиду разные объекты, либо полный бред, если имеется ввиду один и тот же объект.

    Некоторое время размышлял на предмет, писать ли подробно поясняющий ответ по поводу объектов ссылочного типа, или ограничиться смайликом. Решил пока не писать. Если вы мыслите так как пишите, то Вам я особенно не помогу. Нужно что-то внешнее большое прочесть, придушить собственное желание спорить о вещах которые вы плохо понимаете, но пытаетесь закрыть это банальной эрудицией. Что в данном случае не прокатывает.
    Но если кто-то разбирается с этим и следит за дискуссией, то пусть скажет что и из чъего сообщения он не понял, и если это моё, то я всё поясню. Вещи настолько канонически тривиальные, что тут даже дискутировать неловко. Что такое экземпляры одного класса (объекты), довольно быстро понимают даже новички в ОО программировании. Тут нет предмета для дискуссии. Ну вот просто нет и точка.
    Re: [ООП] Полиморфизм
    От: ZevS Россия  
    Дата: 24.02.11 07:10
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Помогите, пожалуйста, определиться с выражениями, которые отображают сущность полиморфизма.


    Мне определение с вики больше нравится, все-таки слово ability точнее отражает суть полиморфизма чем process.

    Subtype polymorphism, almost universally called just polymorphism in the context of object-oriented programming, is the ability to create a variable, a function, or an object that has more than one form.

    Re[9]: [ООП] Полиморфизм
    От: v.a.v СССР  
    Дата: 24.02.11 17:04
    Оценка:
    Здравствуйте, Steamus, Вы писали:

    S>Некоторое время размышлял на предмет, писать ли подробно поясняющий ответ по поводу объектов ссылочного типа, или ограничиться смайликом. Решил пока не писать. Если вы мыслите так как пишите, то Вам я особенно не помогу. Нужно что-то внешнее большое прочесть, придушить собственное желание спорить о вещах которые вы плохо понимаете, но пытаетесь закрыть это банальной эрудицией. Что в данном случае не прокатывает.

    S>Но если кто-то разбирается с этим и следит за дискуссией, то пусть скажет что и из чъего сообщения он не понял, и если это моё, то я всё поясню. Вещи настолько канонически тривиальные, что тут даже дискутировать неловко. Что такое экземпляры одного класса (объекты), довольно быстро понимают даже новички в ОО программировании. Тут нет предмета для дискуссии. Ну вот просто нет и точка.

    Зачем так нервничать
    Последние ваши сообщения — целый трактат о "банальной эрудиции", и поучения. Нет ничего по сути.

    Ну перевели вы простейшее высказывание неправильно, сделали неправильные выводы — ничего страшного.
    Такое случается с "крутыми специалистами".
    Re[10]: [ООП] Полиморфизм
    От: Steamus Беларусь  
    Дата: 24.02.11 19:08
    Оценка:
    Здравствуйте, v.a.v, Вы писали:

    VAV>Последние ваши сообщения — целый трактат о "банальной эрудиции", и поучения. Нет ничего по сути.


    По сути я написал в самом первом своём сообщении, дав правильные ответы на вопрос стандартного теста по ООП, с краткими пояснениями.
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.