Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Теория. Полиморфизм. / 25 сообщений из 47, страница 1 из 2
01.12.2006, 09:00:46
    #34169265
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
правильно ли я понимаю
Overriding - это переопределение метода в наследуемом классе,
методы имеют одинаковое имя, одинаковое колич-во и тип параметров,
возвращают одинаковый тип и бросают одинаковые исключения( в
наследуемом классе может бросаться исключение- наследник)
Overloading - это перегузка методов методы имеют одинаковое имя,
разное колич-во и/или тип параметров, возвращают одинаковый тип,
НЕ обязательно бросают одинаковые исключения

Если рассматривать след. принципы ООП наследование, полиморфизм, инкапсуляция
является ли overriding полиморфизмом?
является ли overriding наследованием ?
является ли overloading полиморфизмом ?
...
Рейтинг: 0 / 0
01.12.2006, 09:52:49
    #34169375
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
является ли overriding полиморфизмом? - Нет.
является ли overriding наследованием ? - Нет.
является ли overloading полиморфизмом ? - Нет.

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

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

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.12.2006, 10:31:23
    #34169468
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Недавно думал примерно над этим же. Но я гадать не привык, а привык лезть в словари.
Посмотрим, что говорит википедия:
http://ru.wikipedia.org/
возможность программного кода работать с объектами разных классов одинаковым образом. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество методов».

Поэтому я бы сказал так - переопределение метода предка есть способ реализации полиморфизма.
Перезагрузка метода это не есть полиморфизм, у двух перезагруженных методов разный контракт. То есть для компилятора, по сути, они имеют разные имена.
...
Рейтинг: 0 / 0
01.12.2006, 10:33:57
    #34169472
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
читаю
http://www.javable.com/tutorials/fesunov/lesson8/
авторВ ООП применяется понятие полиморфизм .

Полиморфизм в ООП означает возможность применения одноименных методов с одинаковыми или различными наборами параметров в одном классе или в группе классов, связанных отношением наследования.
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и переопределение ( overriding ).
авторOverriding
Это — динамический полиморфизм методов. Он называется поздним связыванием (dynamic binding, late binding, run-time binding). В C++ соответствующий механизм называется механизмом виртуальных функций.
Что здесь не так ?
...
Рейтинг: 0 / 0
01.12.2006, 10:43:08
    #34169500
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Лично я не согласен, что понятие полиморфизма применяется для методов с разной сигнатурой.
...
Рейтинг: 0 / 0
01.12.2006, 10:43:22
    #34169502
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
еще оттуда же

авторТермин overloading можно перевести как перегрузку, доопределение, совместное использование. Мы будем использовать перевод совместное использование . Под совместным использованием понимают использование одноименных методов с различным набором параметров. При вызове метода в зависимости от набора параметров выбирается требуемый метод. При этом одноименные методы могут быть как в составе одного класса, так и в разных классах, связанных отношением наследования. Это статический полиморфизм методов классов.

т.е. выходит что

overloading - это реализация полиморфизма, т.н. статический полиморфизм
overriding - это реализация полиморфизма, т.н. динамический полиморфизм

или мы все не понима(-ем/-ли) что такое полиморфизм
или я неправильно понимаю прочитанное ?
...
Рейтинг: 0 / 0
01.12.2006, 10:48:53
    #34169527
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
LeonidvЛично я не согласен, что понятие полиморфизма применяется для методов с разной сигнатурой. вот я тоже, не согласен!!! разная сигнатура - разные методы, зачет))))
...
Рейтинг: 0 / 0
01.12.2006, 11:04:21
    #34169585
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
полиморфизм - возможность в связанных иерархией классах использовать одно
имя функции (метода) для обозначения сходных по смыслу действий и выбирать
конкретное действие лишь во время выполнения про-граммы. Например, объект
класса Водитель взаимодействует с объектом класса Автомобиль через его
интер-фейс (набор публичных методов). Если класс-потомок, например,Легковой
или Грузовик, под-держивает тот же интерфейс, то объект Водитель сможет
аналогично (вызывая одноименные методы) взаимодействовать и с ними, несмотря
на возможные различия в реализации методов интерфейса. Чаще всего понятие
полиморфизма связыва-ют с механизмом виртуальных методов, при котором выбор
вызываемой функции производится на этапе выполнения программы

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.12.2006, 11:12:02
    #34169609
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Michael Ponomarev
полиморфизм - возможность в связанных иерархией классах использовать одно
имя функции (метода) усе прально, тока имя функции я бы заменил на СИГНАТУРУ!
...
Рейтинг: 0 / 0
01.12.2006, 11:20:17
    #34169646
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
согласен.
...
Рейтинг: 0 / 0
01.12.2006, 11:25:29
    #34169664
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Michael Ponomarev
рассказал нам только про overriding
а что про overloading?

как Вы думаете, Michael,
overriding - это реализация полиморфизма?
overloading - это реализация полиморфизма?
и применим ли полиморфизм ТОЛЬКО к иерархии классов ?
...
Рейтинг: 0 / 0
01.12.2006, 11:40:06
    #34169721
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Michael Ponomarev
danii
правильно ли я понимаю
Overriding - это переопределение метода в наследуемом классе,
методы имеют одинаковое имя, одинаковое колич-во и тип параметров,
возвращают одинаковый тип и бросают одинаковые исключения( в
наследуемом классе может бросаться исключение- наследник)
Overloading - это перегузка методов методы имеют одинаковое имя,
разное колич-во и/или тип параметров, возвращают одинаковый тип,
НЕ обязательно бросают одинаковые исключения

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

Posted via ActualForum NNTP Server 1.3
Докатился, сам себя цитирую. Я рассказал про Overloading
daniiприменим ли полиморфизм ТОЛЬКО к иерархии классов
Вопрос про интерфейсы?
...
Рейтинг: 0 / 0
01.12.2006, 11:42:26
    #34169731
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Что-то старшие многоопытные товарищи молчат
Тут делфистов бывших/действующих прилично
...
Рейтинг: 0 / 0
01.12.2006, 11:49:26
    #34169771
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
...
Рейтинг: 0 / 0
01.12.2006, 11:58:24
    #34169806
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Michael,
склоняюсь к мысли, и Вам и Wessen очень даже не помешает также почитать про полиморфизм.
Посмотрите ссылку, которую дал я выше, там все доступно описано.

А уж идентифицировать динамическое связывание как overloading - это вообще близко к ереси
(если я правильно понимаю то, что прочитал)
...
Рейтинг: 0 / 0
01.12.2006, 12:04:54
    #34169846
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
все верно, wiki пишет
Код: plaintext
Since overloading is done at compile time, it is not a substitute  for  late binding as found in subtyping polymorphism.
...
Рейтинг: 0 / 0
01.12.2006, 12:05:29
    #34169851
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Зашибись. Смотрю в монитор вижу тоже самое...

автор
А уж идентифицировать динамическое связывание как overloading - это вообще близко к ереси
(если я правильно понимаю то, что прочитал)

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

и выбирать конкретное действие лишь во время выполнения про-граммы .
это и есть late binding - он же dinamic binding
...
Рейтинг: 0 / 0
01.12.2006, 12:15:58
    #34169903
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
Автор туториала, считает полиморфизмом динамическое и статическое звязывание. Поэтому вот это его утверждение
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и переопределение ( overriding ).

вроде как и верно. Из-за это как мне кажется и возникла путаница. Потомучто в рамках Java, полиморфизм это только динамическое связывание. Поэтому нужно так:
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и реализация ( implementation ).
...
Рейтинг: 0 / 0
01.12.2006, 12:22:08
    #34169938
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
wessen, а почему, ты считаешь
Код: plaintext
в рамках Java, полиморфизм это только динамическое связывание
...
Рейтинг: 0 / 0
01.12.2006, 12:23:51
    #34169950
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
wessenАвтор туториала, считает полиморфизмом динамическое и статическое звязывание. Поэтому вот это его утверждение
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и переопределение ( overriding ).

вроде как и верно. Из-за это как мне кажется и возникла путаница. Потомучто в рамках Java, полиморфизм это только динамическое связывание. Поэтому нужно так:
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и реализация ( implementation ).


упс, надо так:
Понятие полиморфизма, в свою очередь, опирается на два других понятия: переопределение ( overriding ) и реализация ( implementation ).
...
Рейтинг: 0 / 0
01.12.2006, 12:23:57
    #34169951
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
wessenАвтор туториала, считает полиморфизмом динамическое и статическое звязывание. Поэтому вот это его утверждение
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и переопределение ( overriding ).

вроде как и верно. Из-за это как мне кажется и возникла путаница. Потомучто в рамках Java, полиморфизм это только динамическое связывание. Поэтому нужно так:
автор
Понятие полиморфизма, в свою очередь, опирается на два других понятия: совместное использование ( overloading ) и реализация ( implementation ).

Это что то новое.
...
Рейтинг: 0 / 0
01.12.2006, 12:29:00
    #34169973
danii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
wessen, так утверждает не автор туториала а
http://www.javable.com/tutorials/fesunov/lesson8/
прочитай пожалуйста
...
Рейтинг: 0 / 0
01.12.2006, 12:29:41
    #34169980
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория. Полиморфизм.
daniiwessen, а почему, ты считаешь
Код: plaintext
в рамках Java, полиморфизм это только динамическое связывание


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


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