powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Теория. Полиморфизм.
22 сообщений из 47, страница 2 из 2
Теория. Полиморфизм.
    #34169988
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiwessen, так утверждает не автор туториала а
http://www.javable.com/tutorials/fesunov/lesson8/
прочитай пожалуйста

я оттуда и брал цитату
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170001
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danii авторполиморфизм - возможность в связанных иерархией классах использовать одно
имя функции (метода) для обозначения сходных по смыслу действий и выбирать
конкретное действие лишь во время выполнения про-граммы
. Например, объект
класса Водитель взаимодействует с объектом класса Автомобиль через его
интер-фейс (набор публичных методов). Если класс-потомок, например,Легковой
или Грузовик, под-держивает тот же интерфейс, то объект Водитель сможет
аналогично (вызывая одноименные методы) взаимодействовать и с ними, несмотря
на возможные различия в реализации методов интерфейса. Чаще всего понятие
полиморфизма связыва-ют с механизмом виртуальных методов, при котором выбор
вызываемой функции производится на этапе выполнения программы

и выбирать конкретное действие лишь во время выполнения про-граммы .
это и есть late binding - он же dinamic binding
ты теплое с мягким не путай
Где здесь написано что это есть overloading
Это есть Overriding
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170002
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen,
поставь цитату сюда
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170030
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiwessen,
поставь цитату сюда

Лень переписывать.
Коллеги! Есть книжка "Философия Джава" в электронном виде, дайте ссылку пожалуйста danii, пускай лучше ее читает.
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170040
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to michael ponomarev
авторполиморфизм - возможность в связанных иерархией классах использовать одно
имя функции (метода) для обозначения сходных по смыслу действий и выбирать
конкретное действие лишь во время выполнения про-граммы. Например, объект
класса Водитель взаимодействует с объектом класса Автомобиль через его
интер-фейс (набор публичных методов). Если класс-потомок, например,Легковой
или Грузовик, под-держивает тот же интерфейс, то объект Водитель сможет
аналогично (вызывая одноименные методы) взаимодействовать и с ними, несмотря
на возможные различия в реализации методов интерфейса. Чаще всего понятие
полиморфизма связыва-ют с механизмом виртуальных методов, при котором выбор
вызываемой функции производится на этапе выполнения программы
авторMichael Ponomarev
рассказал нам только про overriding
а что про overloading?
Код: plaintext
Докатился, сам себя цитирую. Я рассказал про Overloading

если это не ответ на мой вопрос -
тогда нигде
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170062
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen,
книга у меня есть
но что пролиморфзм - это ТОЛЬКО и ТОЛЬКО late binding,
я там видимо пропустил,
поставь все таки цитату, не поленись,
вопрос фундаментальный
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170090
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiwessen,
книга у меня есть
но что пролиморфзм - это ТОЛЬКО и ТОЛЬКО late binding,
я там видимо пропустил,
поставь все таки цитату, не поленись,
вопрос фундаментальный

эххх..
Брюс
..
В этой главе мы изучим полиморфизм (также называемый динамическим связыванием, поздним связыванием, или связыванием во время выполнения), ...


седьмая глава третий абзац. Второе издание.
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170099
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Ponomarev Michael Ponomarev
danii
правильно ли я понимаю
Overriding - это переопределение метода в наследуемом классе,
методы имеют одинаковое имя, одинаковое колич-во и тип параметров,
возвращают одинаковый тип и бросают одинаковые исключения( в
наследуемом классе может бросаться исключение- наследник)
Overloading - это перегузка методов методы имеют одинаковое имя,
разное колич-во и/или тип параметров, возвращают одинаковый тип,
НЕ обязательно бросают одинаковые исключения

Overloading применим не обязательно к классам. Например не в эхотажной
Delphi могут быть просто несколько Overloading процедур/функций.
wessen прав, почитай про полиморфизм. И не применительно к какому-либо
языку, а в целом.

Posted via ActualForum NNTP Server 1.3
Докатился, сам себя цитирую. Я рассказал про Overloading
daniiприменим ли полиморфизм ТОЛЬКО к иерархии классов
Вопрос про интерфейсы?
Повторонье мать учения
да простит меня модератор
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
unit overloaddemo
uses System; // может еще что
 interface 
  function sum(a: Integer; b: Integer): Integer;overload;
  function sum(a:  Double ; b:  Double ):  Double ;overload;
implementation
  function sum(a: Integer; b: Integer): Integer;overload;
  begin
    Result := a + b
  end;

  function sum(a:  Double ; b:  Double ): Integer;overload;
  begin
    Result := a + b;
  end;

end;
это overload. Где здесь полиморфизм или вообще ООП?
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170128
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та же книга читаем ниже
авторСоединение вызова метода с телом метода называется связывание Когда свзяывание осуществляется до запуска программы (компилятором и компоновщиком, если такой используется), то оно (связывание) называется ранним связыванием. Вы могли даже и не слышать о таком термине, поскольку такая технология не применялась в процедурных языках. C компиляторы имеют только одну разновидность вызова, и она как раз является ранним связыванием.

а раннее связывание используется в overloading
прочитай внимательнее эту книгу
одну и туже задачу можно решить использую как overriding так и overloading
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170150
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael,
что можно сделать в отдельной реализации отдельного языка не может опровергать фундаментальных принципов,
Вы идете от противного, в программировании - токой подход неприемлем имхо
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170171
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniimichael,
что можно сделать в отдельной реализации отдельного языка не может опровергать фундаментальных принципов,
Вы идете от противного, в программировании - токой подход неприемлем имхо
я вообще перестал понимать что ты хочешь сказать/доказать :)
другой пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public   class  OverloadDemo {
   public   int  sum( int  a,  int  b) {
     return  a + b;
  }
   public   double  sum( double  a,  double  b) {
     return  a + b;
  }
}
Где здесь полиморфизм?
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170198
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiта же книга читаем ниже
авторСоединение вызова метода с телом метода называется связывание Когда свзяывание осуществляется до запуска программы (компилятором и компоновщиком, если такой используется), то оно (связывание) называется ранним связыванием. Вы могли даже и не слышать о таком термине, поскольку такая технология не применялась в процедурных языках. C компиляторы имеют только одну разновидность вызова, и она как раз является ранним связыванием.

а раннее связывание используется в overloading
прочитай внимательнее эту книгу
одну и туже задачу можно решить использую как overriding так и overloading

И чего? Где здесь написано, что полиморфизм в java это еще и раннее связывание. Более того, читаем на пару строчек ниже вашей цитаты:

автор
Связывание всех методов Java основано на механизме позднего связывания, ...
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170226
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю, не знаю ...
для меня не все очевидно так, как для тебя...

но если в яве все вызовы - это позднее связывание,
то тогда и overloading тоже позднее связывание,
тогда какие аргументы не считать overloading полиморфизмом
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170268
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
danii
но если в яве все вызовы - это позднее связывание не все, есть еще static методы
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170327
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,
а вы как думаете, overloading - это реализация полиморфизма?
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170343
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я только не пойму зачем вешать/не вышать полиморфизм на override или overload ?

Полиморфизм:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
ParentClass.java:
 package  polymorphism;
 class  ParentClass {
   public   void  demo() {
    System.out.println("Parent");
  }
}

ChildClass.java:
 package  polymorphism;
 class  ChildClass  extends  ParentClass{
   public   void  demo() {
    System.out.println("Child");
  }
}

DemoClass.java:
 package  polymorphism;
 class  DemoClass{
   public   void  demo() {
    ParentClass pc =  new  ParentClass();
    ChildClass cc =  new  ChildClass();
    ParentClass whoIsIt;
    whoIsIt = pc;
    whoIsIt.demo();
    whoIsIt = cc;
    whoIsIt.demo();
  }
}
Ответ думаю знаешь.
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170380
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daniiam_sasa,
а вы как думаете, overloading - это реализация полиморфизма? не задумывался... думаю дело не в терминалогии, а в понимании)))
overloading существовал за долго до ООП, а вот полиморфизм скорее нет, чем да... но могу ошибаться)))
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170395
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenИ чего? Где здесь написано, что полиморфизм в java это еще и раннее связывание. Более того, читаем на пару строчек ниже вашей цитаты:

автор
Связывание всех методов Java основано на механизме позднего связывания, ...


Утверждение "автора" для статических методов не выполняется.

Я вас, господа, не понимаю.

Слово "полиморфизм" в разных словосочетаних имеет "разный" смысл.


1. Наличие нескольких методов с разными сигнатурами в одной области видимости иногда называют "параметрическим полиморфизмом" (об ооп при этом может вообще не упоминаться).
Чаще всего при этом используется раннее связывание (в динамически типизированных языках это может быть не так).

2. наследование + позднее связывание = динамический полиморфизм.
Выбор какую реализации метода использовать зависит от "реального" типа объекта.
(в с#/c++ это верно для virtual-методов, в java - для всех не-static методов)

3. наследование + раннее связывание = статический полиморфизм.
Выбор реализации метода зависит от информации о типе объекта на момент "сборки" приложения.
Такой вариант "родной" для с#, с++ и в java для static методов.

Очевидно, что имея такие варианты определений отвечать на вопрос "это полиморфизм или нет" бессмысленно.

Я не стал бы называть словом "полиморфизмом" ничего кроме варианта N2.
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170421
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Утверждение "автора" для статических методов не выполняется.


а еще оно не выполняется для final методов, это все опущено во многоточиях было :)
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170425
danii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs,
по твоему
http://www.javable.com/tutorials/fesunov/lesson8/
вводит нас в заблуждение ?
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34170688
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiNotGonnaGetUs,
по твоему
http://www.javable.com/tutorials/fesunov/lesson8/
вводит нас в заблуждение ?
Молодец, ты правильно догадался. Пять баллов за смекалку. Если ты внимательно почитаешь статью из викепедии, то увидишь - моя цитата касается ООП полиморфизма. Я думаю, есть и другие методы для других подходов. В частности, как там и написано, параметрический полиморфизм - понятие из функциональных языков.

PS Я еще хотел в книжке глянуть, так там глава на 40 страниц описывает, что такое полиморфизм.
...
Рейтинг: 0 / 0
Теория. Полиморфизм.
    #34171227
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daniiNotGonnaGetUs,
по твоему
http://www.javable.com/tutorials/fesunov/lesson8/
вводит нас в заблуждение ?

Нас? Меня не вводит.

Просто там две разные вещи (см. п.1 и п.2) обзываются одним словом.

Лучше не читать этого афтора.
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Теория. Полиморфизм.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]