|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2017, 06:41 | #1 |
Регистрация: 30.05.2017
Сообщений: 5
|
Зачем нужен полиморфизм?
Всем здравствуйте, дорогие форумчане!
Хочу узнать у вас, зачем на самом деле нужен полиморфизм? Начнем с начала: ссылочный тип определяет доступность данных, а объект определяет какой вариант будет запускаться. Внимание вопрос: Какая разница между "object ob = new Animal()" и "Animal ob = new Animal" если вызов переопределенного метода определяется типом объекта и вызывается нужный вариант, и обратиться к данным суперкласса можно посредством оператора "super"? Я не могу понять, все никак не могу разобраться ЗАЧЕМ, ведь реализацию можно сделать просто обращаясь к переменным супер класса! Помогите разобраться, спасибо за ранее!) |
30.05.2017, 07:58 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Потому что так можно делать не только с локальной переменной, в которую присваивается только что созданный объект, но и например с параметрами функции.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.05.2017, 08:48 | #3 |
Регистрация: 30.05.2017
Сообщений: 5
|
Приведите, пожалуйста, пример. Спасибо!
Последний раз редактировалось Sr233; 30.05.2017 в 08:51. |
30.05.2017, 09:26 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так их же полно даже в стандартной библиотеке.
OutputStream какой-нибудь или System.out.print: туда можно передать любой Object (и он вызовет toString) без необходимости создавать новую функцию print для каждого класса.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
31.05.2017, 08:56 | #5 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
...ну в целом - вы определяете какой-то "внешний вид" (базовый класс, интерфейс), который все остальные части программы будут видеть и использовать. А что реально происходит там - скрыто, например Animal.run - все животные бегают, но анимация человека и медведя разная. С другой стороны, отрисовщику экрана не важно - человек или медведь, он просто делает всем "run", а путем полиморфизма, каждый конкретный объект, уже сам показывает свою анимацию.
|
02.06.2017, 17:22 | #6 | |
Регистрация: 30.05.2017
Сообщений: 5
|
Цитата:
|
|
02.06.2017, 17:34 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не знаю что такое "как с одним объектом", но я ж написал уже зачем. Что именно непонятно в этих примерах?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.06.2017, 19:14 | #8 | |
Регистрация: 30.05.2017
Сообщений: 5
|
Цитата:
Для чего конкретно предназначен полиморфизм? Чтобы имя было одно и не нужно было путаться в именах методах? Все дело в том что можно реализовать код без полиморфизма, но тогда получается больше кода (говорят мне и программисты, и гугл) но я никак не могу найти пример измененного кода и наглядно увидеть, как именно, реализуется полиморфизм. Если вы можете, скажите где найти такой пример, или купить его (ей богу) И в чем реальная изюминка полиморфизма?? Спасибо что отвечаете. |
|
02.06.2017, 19:24 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так я ж говорю, посмотрите например на стандартные классы/методы Java, которые вы все время используете.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.06.2017, 19:53 | #10 |
Регистрация: 30.05.2017
Сообщений: 5
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Зачем нужен конструктор? | Мой повелитель | Общие вопросы C/C++ | 9 | 21.04.2016 10:29 |
Зачем нужен Chr(34)??? | RISagitov | Microsoft Office Excel | 1 | 07.08.2012 20:43 |
зачем нужен IdAntiFreeze1? | cargo29 | Компоненты Delphi | 8 | 05.03.2012 11:40 |
Зачем нужен static | Kasper1 | Общие вопросы C/C++ | 5 | 21.12.2010 01:53 |
Зачем нужен finally? | ds.Dante | Общие вопросы .NET | 9 | 15.09.2009 12:09 |