Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / интерфейс или абстрактный класс / 12 сообщений из 12, страница 1 из 1
20.06.2014, 07:00
    #38674884
TimRX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
Доброго времени суток.

Хочу разобраться в каких случаях и как использовать интерфейс или абст. класс на примере.

К примеру есть два типа война ... лучник и меченосец.
Наверное правильно будет создать интерфейс война с методами к примеру атаковать и умереть.
Код: java
1.
2.
3.
4.
public interface iWarrior(){
public void attack(iWarrior warrior);
public void die(); 
} 


Соответственно каждый тип война будет реализовывать данный интерфейс и его методы по своему.
Метод attack(iWarrior warrior) у меня вопросов не вызывает. Различные типы воинов убивают по разному используя при этом различные реализации.
Метод die() по сути может иметь одинаковую реализацию для разных типов т.е тогда придется повторять реализацию для всех воинов.
Как в этом случае поступить ? Использовать вместо интерфейса абстрактный класс ?
...
Рейтинг: 0 / 0
20.06.2014, 09:06
    #38674961
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
TimRXДоброго времени суток.
Хочу разобраться в каких случаях и как использовать интерфейс или абст. класс на примере.


JDK8 и дефолтные методы. И выбор уже будет не по поведению, а по данным.

PS: интерфейсы- костыль для тех, кто не понял множественного наследования. Увы, авторы java были из таких.
...
Рейтинг: 0 / 0
20.06.2014, 09:45
    #38674994
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
Alexey TominPS: интерфейсы- костыль для тех, кто не понял множественного наследования. Увы, авторы java были из таких.
М-да.
...
Рейтинг: 0 / 0
20.06.2014, 10:17
    #38675028
organism
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
TimRX,
Интерфейс оставьте. Сделайте на базе него абстрактный класс война, в котором реализуйте метод die. А вот метод attack, оставьте для реализации уже конкретным экземплярам война.
...
Рейтинг: 0 / 0
20.06.2014, 10:23
    #38675037
Anatoly D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
TimRX,

тут сам собой паттерн Стратегия просится. Вот прям напрашивается!
...
Рейтинг: 0 / 0
20.06.2014, 10:25
    #38675043
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
тогда, нужен ли вообще тут интерфейс?
...
Рейтинг: 0 / 0
20.06.2014, 10:51
    #38675079
TimRX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
rema174тогда, нужен ли вообще тут интерфейс?
Я вот и интересуюсь.

rema174Интерфейс оставьте. Сделайте на базе него абстрактный класс война, в котором реализуйте метод die. А вот метод attack, оставьте для реализации уже конкретным экземплярам война.

Это понятно ... но ведь проще без интерфейса. Хотя скорей тут не как проще , а как правильно.
...
Рейтинг: 0 / 0
20.06.2014, 10:58
    #38675094
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
ну, товаристчъ Эккель советует в общем случае выбирать класс
...
Рейтинг: 0 / 0
20.06.2014, 11:09
    #38675124
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
TimRX,
Нужен и интерфейс, и абстрактный класс, реализующий этот интерфейс.

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

При использовании везде пользуйтесь интерефейсом, это гибче.
А реализацию делайте через наследование от абстрактного класса.
...
Рейтинг: 0 / 0
20.06.2014, 15:53
    #38675631
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
Anatoly DTimRX, тут сам собой паттерн Стратегия просится. Вот прям напрашивается!
Тут ИГРА Стратегия напрашивается..
...
Рейтинг: 0 / 0
20.06.2014, 17:09
    #38675783
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
HoBTIDTimRX,
Нужен и интерфейс, и абстрактный класс, реализующий этот интерфейс.

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

При использовании везде пользуйтесь интерефейсом, это гибче.
А реализацию делайте через наследование от абстрактного класса.
Самый правильный ответ, на мой взгляд.
...
Рейтинг: 0 / 0
23.06.2014, 16:16
    #38677555
esy301s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс или абстрактный класс
Anatoly D, поддержу
Делай себе поле конкретеВариорДай и конкретеВариорАтак и пхай туда свои реализации пусть атакают и даят каждый по своему
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / интерфейс или абстрактный класс / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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