Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/70: Рейтинг темы: голосов - 70, средняя оценка - 4.93
danii

Полиморфизм и overloading

01.12.2006, 17:57. Показов 13256. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
является ли overloading реализацией полиморфизма
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2006, 17:57
Ответы с готовыми решениями:

Overloading+Overriding
Дано : class A { boolean f(A a) { return true; } } class B extends A{ boolean f(A a) { return false; } boolean...

Исключения и полиморфизм (непонятна задача)
Всем привет, приступлю сразу к делу, в книге Сьерра К и Бейтс Б. на странице 364 есть задание смысл которого мне не совсем ясен, т.е. что...

Брюс Эккель Философия Java 2015. Полиморфизм
Здравствуйте уважаемые форумчане. В книге (страница 248) есть такой простенький пример кода: class Super { public int field = 0; ...

37
wind
08.12.2006, 02:42
Студворк — интернет-сервис помощи студентам
paradise (07.12.2006)
Фундаментален потому что прост?
Именно так. Потому как на принципах труднообъяснимых ничего не построишь
danii
11.12.2006, 17:43
Danissimo, ты рассказал только про динамический полиморфизм, но есть также и статический (он же параметрический)
Есть мнение что полиморфизм это НЕ ТОЛЬКО динамический полиморфизм
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
11.12.2006, 18:18
Да, наверное, можно и так подойти.



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



Еще раз, с точки зрения теории, науки, полиморфизм единственен, а именно тот, который ты называешь динамическим. Я вот имеено это имел в виду. То есть наука не знает такого полиморфизма, который строится с помощью перегрузки имен операций.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 00:37
поли-морф-изм - многообразие форм, если уж исходить из термина как такого и это может, кстати, быть многообразием форм метода с одним и тем же названием



по мне, дак вопрос в самом начале был сформулирован некорректно, поэтому не вижу смысла спорить



также я согласен с Danissimo в том плане, что если речь идет об ООП и не уточняется какой полиморфизм имеется ввиду, то по-умолчанию - это динамический, который имеет прямое отношение к наследованию



С уважением,

Владимир
0
danii
12.12.2006, 13:32
я понял что, Danissimo и boombastik не согласны с автором http://www.javable.com/tutorials/fesunov/lesson8/ , и все же оставлю за собой право думать, что полиморфизм это НЕ ТОЛЬКО динамический полиморфизм, а ООП НЕ ТОЛЬКО наследование.
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
12.12.2006, 15:53
Welcome! =)
0
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
12.12.2006, 16:04
Мне интересно, а автор уроков читал научные труды по ООП. Прочитав 40% урока, у меня сложилось впечатление, что он идет от практики. Но не от теории.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 19:32
danii, вы не правильно меня поняли, я не против терминов статический полиморфизм, динамический полиморфизм и др., я лишь хотел сказать, что вы задали некорректный вопрос, обсуждать который я не вижу смысла

является ли overloading реализацией полиморфизма?

во-первыйх, почему один термин по-английски, второй по русски? оба термина имеют устоявшиеся и достаточно четкие термины в обоих языках: overloading, polymorphism - перегрузка методов, полиморфизм

во-вторых, вы спрашиваете, является ли перегрузка методов реализацией полиморфизма, таким образом вы даете понять что полиморфизм является другим уровнем абстракции по сравнению с перегрузкой, то есть если полиморфизм - это механизм ООП, то перегрузка методов - это реализация данного механизма скажем в языке Java или ряде языков, такие как Java, C++, C#

тогда как, на мой взгляд, перегрузка методов лишь один из возможных видов полиморфизма, но не тот, на котором концентрирует свое внимание ООП, хотя и встречается он почти во всех ОО-языках

в-третьих, в каких рамках должна вестись дискуссия? я так понимаю полиморфизм имеется ввиду из области программирования, но обсуждаем ли мы общую теорию ООП, или конкретную реализаию ОО идей в Java, или стандартные механизмы ОО-языков вцелом, или просто флуд на тему: кто как представляет себе тот или иной термин?


по-моему, статья из википедии на английском языке полностью расскрывает этот вопрос и снимает данную тему с обсуждения: http://en.wikipedia.org/wiki/Type_polymorphism Type polymorphism

но обязательно с поправкой на следующую статью: http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming Polymorphism in object-oriented programming

в общем и целом "Overloading" - это "Ad-hoc polymorphism"
под "Polymorphism"-ом в ООП понимается "polymorphism (object-oriented programming theory) is the ability of objects belonging to different types to respond to method calls of methods of the same name, each one according to an appropriate type-specific behaviour"

С уважением,
Владимир
0
danii
12.12.2006, 19:47
тогда как, на мой взгляд, перегрузка методов лишь один из возможных видов полиморфизма, но не тот, на котором концентрирует свое внимание ООП, хотя и встречается он почти во всех ОО-языках
вот эту мысль я и хотел донести. То что overriding - это реализация полиморфизма, большинство ответит "да", поэтому этот вопрос я не задавал. на вопрос является ли overloading реализацией полиморфизма большинство отвечает "нет", хотя на самом деле "да", это и Вы признали.
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 20:01
это НЕ реализация полиморфизма

это вид полиморфизма



и доступен он нам лишь потому, что термин полиморфизм сам по себе намного шире того значения как понимает его теория ООП



существует, например, биологический полиморфизм и это между прочем тоже вид полиморфизма
0
danii
12.12.2006, 20:11
ок. пусть будет так.
overloading это вид полиморфизма. с этим я согласен.
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 20:12
попробую по другому



на вопрос "является ли механизм перегрузки методов полиморфизмом в общем понимании?" ответ будет однозначным: "да"



на вопрос "является ли механизм перегрузки методов полиморфизмом с точки зрения теории ООП?" ответ будет однозначным: "нет"



С уважением,

Владимир
0
danii
12.12.2006, 20:24
вопрос в ветке java. поэтому ответ "да", overloading в java это также полиморфизм
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 20:29
тогда сформулируйте, пожалуйста, ваш вопрос применительно к Java



а то получается как в путеводителе по галлактике "Ответ на главный вопрос жизни, вселенной и всего такого" достоверно известен, а вот над формулировкой вопроса бьются не один миллион лет
0
danii
12.12.2006, 20:35
я думаю, что все вопросы в этом разделе задаются применительно к java.
по вашему надо было спросить так
является ли overloading видом полиморфизма применительно к java.
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.12.2006, 20:50
я привел выше 2 формулировки, которые на мой взгляд имеют смылс, к сожалению, не вижу, каким образом можно сформулировать ваш вопрос применительно к Java, поэтому и попросил вас это сделать



впрочем, возможно что-то вроде такого вопроса: пользуются ли создатели языка Java при описании механизма перегрузки методов термином полиморфизм?



но вопрос звучит по меньшей мере странно, да и ответ на него не принисет никому счастья



кроме того, не совсем понимаю, почему перегрузку методов вы называете overloading, в то время как polymorphism вы все время обзываете полиморфизмом?
0
sergioK
15.12.2006, 03:55
Это как в фильме о приключениях ментов ,:lol:
Какая разница что знаешь из чего ствол сделан если стрелять не научился ?
Является перегрузка разновидностью полиморфизма или нет , да какая разница ? здесь же не форум по философии, нужно уметь этим понятиями пользоваться и все ,
paradise
25.01.2007, 22:29
sergioK (15.12.2006)
Это как в фильме о приключениях ментов ,:lol:



Какая разница что знаешь из чегоствол сделан если стрелять ненаучился ?



Является перегрузка разновидностью полиморфизма или нет , да какая разница ? здесь же не форум по философии, нужно уметь этим понятиями пользоваться и все ,


Ты упускаешь из виду одно важное обстоятельство: люди, которые ведут спор в философском наклонении о практических вещах, как правило, прекрасно умеют использовать предмет спора на практике.



Например я читаю данный топик чтобы поднять настроение. Вот когда думаешь, что в мире полно идиотов и тормозов - заходишь, читаешь и отдыхаешь.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2007, 22:29
Помогаю со студенческими работами здесь

Полиморфизм
привет, подскажите, везде в книгах пишут: - дочерний класс может вызывать методы свои и своего родителя. - родитель может вызывать...

Полиморфизм
Здравствуйте! Если я хочу создать полиморфический массив, допустим: Animal dogs = new Dog Какие методы я смогу вызвать через этот...

Полиморфизм
public class Shape { public void draw() { //ничего не делаем } } public class Square extends Shape { public void...

Полиморфизм
дана программа class X { int i; public X() { i = 5; this.print(); }

Полиморфизм
дана программа class X { int i; public X() { i = 5; this.print(); } public void print() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru