![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В зависимости от того какой параметр нам передали, мы выполняем разный код. Но сам код main не меняется.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Я добавил в ФАК статью про интерфейсы: http://vingrad.ru/JAVA-ART-002984
|
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Примеров может быть много. Программисты А и Б делают проект School. Программист А пишет класс Course, программист Б пишет класс Student. Программист А , не дожидаясь, пока будет готов класс Student, пишет метод setStudent(IStudent student) и создает интерфейс IStudent с нужным ему методом getName(). Программист А передает этот интерфейс программисту Б и говорит, что его класс Student должен имплементировать этот интерфейс, т.е. класс может быть каким угодно и называться как угодно, лишь бы он имел метод getName(). |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Но ведь Программист А может попросить программиста Б реализовать в своем классе метод string public getName(). Зачем делать через инферфейс? ИМХО, этот пример плохо подходит... |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Но ведь Программист А может попросить программиста Б
а если не может? если они вообще в разных странах работают и друг друга не знают ![]() Пример может и плохой/ Хорошие примеры у преподавателей, у тех, чья профессия обьяснять ![]() Это иллюзия, что прочитав книжку можно все понять. Поймешь, когда будешь решать проблему для решения которой интерфейсы и придуманы. С другой стороны, можно много лет программировать и чего-то не знать. Тоже не беда. Это сообщение отредактировал(а) COVD - 12.1.2006, 00:04 |
|||
|
||||
GIK |
|
||||||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Главное что я понял в интерфейсах, это то что с помощъю них можно реализовать полиморфизм времени выполнения. И помоему это все чем отличается реализация интерфейса в классе от просто класса, с помощью которого так же можно обращатся к методам и данным. Посудите сами Пример:
А так можно просто обращатся к методам которые определены в том или ином объекте.
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
||||||
|
|||||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
GIK
Советую: делай отступы в коде побольше, не один пробел, а два-четыре. Читать будет легче. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Нет. С их помощью можно реализовать множественное наследование. Это будет урезанный вариант, по сравнению с множественным наследованием в C++ или других языках, но по некоторым соображениям этот вариант предпочтительней. Интерфейс нужен для абстрагирования реализации от задачи. Возьмем пример обработки события на кнопке. Есть задача оповестить всех заинтересованные классы о том, что произошло событие, для этого в интерфейсе ActionListener предусмотрен метод actionPerformed(ActionEvent). И оговорено что любой кто желает получать оповещения, о том что любой кто желает получать оповещения о том что кнопка была нажата, должен реализовать этот интерфейс, опрделив в методе actionPerformed(ActionEvent) свою логику, и зарегистрировать свой объект в качстве слушателя. У кнопки храниться список ActionListener-ов и когда происходит нажатие на кнопу, у каждого вызывается метод actionPerformed(ActionEvent). Таким образом в классе кнопки не надо думать о том: какие классы могут подписываться на данное событие, какие методы у этих классов есть, что эти методы делаю и т.д. Достаточно определть интефейс и сказать что слушателям надо его реализовать, и все. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Офигеть ![]() ![]() |
|||
|
||||
AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 18 |
Пиши тогда на Assembler'е ![]() -------------------- ГЫ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |