powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Интерфейс
13 сообщений из 13, страница 1 из 1
Интерфейс
    #33904656
вован_j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зразу прошу извинить за глупый вопрос. Начал учить java. Прочитал объяснение понятия "интерфейс", так и не понял что это такое и зачем это надо? Объясните если не тяжело на пальцах, что это такое?
...
Рейтинг: 0 / 0
Интерфейс
    #33904729
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам сюда: Bruce Eckel Thinking in Java
http://www.kulichki.com/inkwell/comp/java.htm
...
Рейтинг: 0 / 0
Интерфейс
    #33905477
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такое мнение, что Bruce Eckel - книга для продвинутых разработчиков и новичок не поймет ее в полной мере.
Я бы первой книгой порекомендовал Хорстманна.
...
Рейтинг: 0 / 0
Интерфейс
    #33905523
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
mysterioесть такое мнение, что Bruce Eckel - книга для продвинутых разработчиков и новичок не поймет ее в полной мере.
Я бы первой книгой порекомендовал Хорстманна.Поддерживаю.
...
Рейтинг: 0 / 0
Интерфейс
    #33905561
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невижу ничего особенного, в ней же все с самого примитивного начинается
http://www.bruceeckel.by.ru/tij/Chapter01.html#Heading23
...
Рейтинг: 0 / 0
Интерфейс
    #33905763
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вован_jЗразу прошу извинить за глупый вопрос. Начал учить java. Прочитал объяснение понятия "интерфейс", так и не понял что это такое и зачем это надо? Объясните если не тяжело на пальцах, что это такое?

На пальцах:

Допустим, есть у тебя два класса, A и B, в которых есть один и тот же метод f(). После того, как ты напишешь класс C, унаследованный от A и B, то компилятор не сможет решить, какую из реализаций методода f() ему нужно использовать при вызове C.f(); Это нехорошо. Поэтому умные мужики и придумали интерфейс - такой класс, в котором методы только определены, но не реализованы. Т.е. если теперь у тебя A и B - интерфейсы, то ты обязан написать свою реализацию метода f().

А есть еще такая штука, как абстрактные классы. Это нечто среднее между классом и интерфейсом. Некоторые методы у него реализованы, а некоторые - нет. Эти методы должны быть переопределены потомками.

Теперь совсем на пальцах.
Представим себе класс "Собака". У нее есть некое количество ног, пол, кличка, любимая еда, а также она умеет издавать лай.

Метод "залаять()" можно вынести в интерфейс "Лающая", который, строго говоря, может относиться не только к собаке, но и например к лисице, или койоту. Таким образом мы можем приводить собаку к типу "Лающая", и работать сходным образом со всеми лающими животными.

Все методы собаки, кроме количества ног, мы определим в базовом абстрактном классе "Собака". Метод "getКоличествоНог()" мы сделаем абстрактным, для красоты :-)

А теперь унаследуем от класса "Собака" классы "НормальнаяСобака", "СобакаИнвалид" и "СобакаМутант". Дла первого определим getКоличествоНог как 4, для второго - <4, а для третьего - как >4, и сделаем проверки.
...
Рейтинг: 0 / 0
Интерфейс
    #33905922
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шикарный пример :-)

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
...
Рейтинг: 0 / 0
Интерфейс
    #33906071
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hinotfШикарный пример :-)

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya

Однако в нём приведён пример "не правильного" наследования.
Количество ног в процессе жизни собаки может изменяться, а наследование приводит к перманентному связыванию числа ног с "собакой" %)
...
Рейтинг: 0 / 0
Интерфейс
    #33906251
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs hinotfШикарный пример :-)

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya

Однако в нём приведён пример "не правильного" наследования.
Количество ног в процессе жизни собаки может изменяться, а наследование приводит к перманентному связыванию числа ног с "собакой" %)

Согласен. Но я писал пример скорее как proof of concept.
...
Рейтинг: 0 / 0
Интерфейс
    #33906316
rrtfm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
Допустим, есть у тебя два класса, A и B, в которых есть один и тот же метод f(). После того, как ты напишешь класс C, унаследованный от A и B


Как это у класса может быть 2 родителя ?
...
Рейтинг: 0 / 0
Интерфейс
    #33906331
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rrtfm автор
Допустим, есть у тебя два класса, A и B, в которых есть один и тот же метод f(). После того, как ты напишешь класс C, унаследованный от A и B


Как это у класса может быть 2 родителя ?
Это в С++ такое бывает.
...
Рейтинг: 0 / 0
Интерфейс
    #33906679
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java не C++ и множественное наследование в ней решается с помощью интерфейсов и делегирования.
...
Рейтинг: 0 / 0
Интерфейс
    #33907671
Jozic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТимоННевижу ничего особенного, в ней же все с самого примитивного начинается ...Поддерживаю :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Интерфейс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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