![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| soulcub |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 2.2.2010 Где: Винница, Украина Репутация: нет Всего: 2 |
Прошу прощения, если вопрос покажется детским, но всё же..
Пытался разобраться в Implements, в чём его прелесть? Читал теорию, но без практики никуда. Ни фига не понял... Может мне кто-то показать на примере кошерность Implements, например в сравнении с Extends.. Когда его лучше использовать и что это даёт? Спасибо.. --------------------
Так давай же, поспеши!Отыскать СВОЙ куб души! |
|||
|
||||
| x8m6 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Это дает возможность альтернативного множественного наследования, т.е. можно сделать implements сразу от нескольких интерфейсов. Но расширять (extends) можно только один класс. implements дает возможность находить что то общее у классов находящихся на разных ветвях в иерархии наследования.
|
|||
|
||||
| nc30 |
|
||||
|
Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
Интерфейсы
Реализация интерфейсов (implementation) - это (IMHO) одна из самых мощных и гибких особенностей Java. Красивое и изящное решение, позволяющее объекту класса выступать в совершенно не связанных между собой ипостасях. При этом соблюдается стройность идеологии языка Java касательно наследования: у класса может быть только один родитель. Приведу небольшой пример. Есть класс Person, который описывает некую персону, у которой есть фамилия, имя и отчество. По условиям задачи система будет работать с некоторым списком объектов Person, при этом было бы неплохо сортировать объекты по Ф.И.О. Один из вариантов - реализация интерфейса Comparable. Для этого надо переопределить (а точнее, определить) метод compareTo() данного интерфейса.
Теперь список объектов Person можно сортировать вызовом статического метода Collections.sort(personList). Либо использовать для хранения объектов коллекцию с автоупорядочиванием, например, TreeSet. При добавлении объекта, реализующего интерфейс Comparable, в такую коллекцию, он автоматически устанавливается на свое место в соответствии с результатом сравнения его (compareTo()) с другими элементами в коллекции. По сути, не изменяя данных и методов класса, я получил новую полезную функциональность. Для этого потребовалось минимум усилий: объявить о том, что класс реализует соответствующий интерфейс и определить необходимый метод. Таким же образом можно и далее расширять функциональность класса, путем реализации других интерфейсов. Какие-то интерфейсы требуют определения методов (ex. Runnable), какие-то - нет (ex. Serializable). Существует удобная возможность проверить, реализует ли объект тот или иной интерфейс:
Мощно поддерживается система интерфейсов в коллекциях. К примеру, класс LinkedList реализует интерфейсы List и Queue. Т. о. разработчик может использовать свойства и поведение объекта LinkedList как очереди или как списка в зависимости от ситуации. |
||||
|
|||||
| soulcub |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 2.2.2010 Где: Винница, Украина Репутация: нет Всего: 2 |
Спасибо большое за ответы)
--------------------
Так давай же, поспеши!Отыскать СВОЙ куб души! |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |