Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 88

полифоризм

05.07.2013, 17:25. Показов 3018. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните мне на пальцах как можно проще - что такое Полифоризм?
0
18 / 18 / 2
Регистрация: 16.04.2013
Сообщений: 58
05.07.2013, 18:20
Пример. Вы устраиваетесь на работу в детский садик. Вы знаете, что будете иметь дело с детьми (базовый класс). У всех детей есть некоторые общие сходства (рос, вес, возраст в установленных пределах и т.д.), но при этом каждый ребёнок ведёт себя по-разному - кто-то шумит, кто-то прыгает, кто-то сдирает кожу с ног и суёт её в рот.
Таким же образом работает и полиморфизм в Java - вы представляете себе обьект, как нечто что-то базовое и общаетесь с ним на том же уровне, но в зависимости от того, что за это за объект на самом деле, поведение будет варьироваться.
Java
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
30
31
32
abstract class Transport {
 
    public abstract void beep();
}
 
class Car extends Transport {
 
    @Override
    public void beep() {
        System.out.println("Би-бип");
    }
}
 
class Bicycle extends Transport {
 
    @Override
    public void beep() {
        System.out.println("Дзынь-дзынь");
    }
}
 
public class Program {
 
    public static void main(String[] args) {
        Transport first = new Car();
        Transport second = new Bicycle();
        
        // Можно сигналить, потому что... я хочу - значит можно! (public abstract void beep();)
        first.beep(); // Посигналь-ка
        second.beep(); // Посигналь-ка
    }
}
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 19:42
dimashnurenko, полиморфизм - одна из основополагающих концепций ООП. И если Вы начали учить Java, то Вы на верном пути
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 19:48
Цитата Сообщение от animator404 Посмотреть сообщение
полиморфизм - одна из основополагающих концепций ООП. И если Вы начали учить Java, то Вы на верном пути
лучшее обяснение из серии "на пальцах"
для полноты ясности еще можно добавит что полиморфизм это один из четырёх важнейших механизмов объектно-ориентированного программирования
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 19:55
Olllolll, предыдущий ответ был исчерпывающий, поэтому пост я оставил, чтобы подбодрить парня.

Добавлено через 3 минуты
Слово полиморфизм может слегка напугать начинающих поэтому используйте наследование.
, рекомендую ознакомится.
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 20:14
Цитата Сообщение от animator404 Посмотреть сообщение
Слово полиморфизм может слегка напугать начинающих поэтому используйте наследование.
не совсем корректно апеллируете понятиями. Немного исправлю что бы не запутать человека, с помощью наследования можно достичь полиморфизма, но само наследование не является заменой этого определения и является индивидуальным.
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 20:16
Olllolll, таки да.
Цитата Сообщение от Olllolll Посмотреть сообщение
один из четырёх важнейших механизмов объектно-ориентированного программирования
а какой 4-ый?
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 20:20
Цитата Сообщение от animator404 Посмотреть сообщение
а какой 4-ый?
1 наследование
2 инкапсуляция
3 полиморфизм
4 абстракция
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 88
05.07.2013, 20:29  [ТС]
Цитата Сообщение от Olllolll Посмотреть сообщение
с помощью наследования можно достичь полиморфизма
по-подробнее можно, пожалуйста.
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 20:31
Olllolll, я думал их 3.
0
18 / 18 / 2
Регистрация: 16.04.2013
Сообщений: 58
05.07.2013, 20:33
Цитата Сообщение от Olllolll Посмотреть сообщение
не совсем корректно апеллируете понятиями. Немного исправлю что бы не запутать человека, с помощью наследования можно достичь полиморфизма, но само наследование не является заменой этого определения и является индивидуальным.
Не вводите ТСа в заблуждение. Попробуйте реализовать полиморфизм без наследования, а потом пересмотрите, пожалуйста, цитируемое сообщение.
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 20:43
Olllolll, мне все-таки кажется их 3. А абстракция это производная от них. Киньте пищу для размышлений.
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 20:48
Цитата Сообщение от Madonion Посмотреть сообщение
Не вводите ТСа в заблуждение. Попробуйте реализовать полиморфизм без наследования, а потом пересмотрите, пожалуйста, цитируемое сообщение.
очень смешно, я имел ввиду что это разные понятия.
Попробуйте реализовать полиморфизм без наследования
понятие "интерфейс" вам о чем нибудь говорит?
родительский класс моно полностью заменить каким то интерфейсом, так же тип интерфейса можно с легкостью использовать как тип аргументов методов и тип масивов, чем не полиморфизм?

Добавлено через 2 минуты
Цитата Сообщение от animator404 Посмотреть сообщение
мне все-таки кажется их 3. А абстракция это производная от них. Киньте пищу для размышлений.
не вопрос, вот, 5-ая строчка специально для вас)
1
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 20:52
Olllolll, значит эту статью нужно обновить.
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 20:55
Цитата Сообщение от animator404 Посмотреть сообщение
значит эту статью нужно обновить.
не могу знать, у меня не работает ссылка
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
05.07.2013, 20:58
Цитата Сообщение от Olllolll Посмотреть сообщение
1 наследование
2 инкапсуляция
3 полиморфизм
4 абстракция
абстрагирование, а не абстракция

Цитата Сообщение от animator404 Посмотреть сообщение
Olllolll, мне все-таки кажется их 3. А абстракция это производная от них. Киньте пищу для размышлений.
основных - три. абстрагирование это призрачный такой принцип и основным он не считается т.к. не отражается ни в каком языке программирования. грубо говоря, это процесс анализа предметной области служащий для выделения конкретных ее сущностей и свойств имеющих значение для реализации задач которые ставятся перед грядущим ПО. ух как закрутил, хоть в учебник всовывай. короче этот забавный процесс можно увидеть в посте Madonion который анализировал детский садик вычленяя из него детей

Цитата Сообщение от Madonion Посмотреть сообщение
Не вводите ТСа в заблуждение. Попробуйте реализовать полиморфизм без наследования, а потом пересмотрите, пожалуйста, цитируемое сообщение.
Java
1
2
3
4
5
6
public class Java implements Piskomer {
   @Override
   public int ****Compare (Piska p1, Piska p2) {
      //Todo
   }
}
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
05.07.2013, 21:02
Прикол. Не могу вставить ссылку с википедии.
Миниатюры
полифоризм  
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 21:08
Цитата Сообщение от AckiyBolt Посмотреть сообщение
абстрагирование, а не абстракция
готов с вами поспорить что именно абстракция
Цитата Сообщение от AckiyBolt Посмотреть сообщение
абстрагирование это призрачный такой принцип и основным он не считается т.к. не отражается ни в каком языке программирования.
тоже не правда, абстракция это процесс введения новых типов данных определенных пользователем и отличимых от базовых. Суть этой концепции - есть возможность определять новые типы данных с которыми можно работать как с базовыми. Так же абстракция имеет место при применение шаблонов, т.е введение абстрактных типов данных, которые принимают тот или иной тип в зависимости от условий.
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
05.07.2013, 21:19
пасаны, я на всякий хотел бы напомнить что википедия это не эталон знаний человечества. читая что-либо нужно включать голову. я в какой-то книжке, умной причем, встречал то ли 7, то ли 8 принципов объектно ориентированного программирования. как ни странно любой из них имел прямое отношение к ооп

Добавлено через 10 минут
Цитата Сообщение от Olllolll Посмотреть сообщение
тоже не правда, абстракция это процесс введения новых типов данных определенных пользователем и отличимых от базовых. Суть этой концепции - есть возможность определять новые типы данных с которыми можно работать как с базовыми. Так же абстракция имеет место при применение шаблонов, т.е введение абстрактных типов данных, которые принимают тот или иной тип в зависимости от условий.
простите... что?
0
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
05.07.2013, 21:21
Цитата Сообщение от AckiyBolt Посмотреть сообщение
пасаны, я на всякий хотел бы напомнить что википедия это не эталон знаний человечества
это да, но ту инфу что предоставил я (помимо ссылки на вики, потому как долгая процедура книгу фоткать) я брал из своей БУМАЖНОЙ книги которая у меня есс настольной, такие пироги.

Добавлено через 1 минуту
Цитата Сообщение от AckiyBolt Посмотреть сообщение
простите... что?
вы не знаете что такое абстракция данных??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru