powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / интерфейс или абстрактный класс
12 сообщений из 12, страница 1 из 1
интерфейс или абстрактный класс
    #38674884
TimRX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

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

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


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


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

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

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

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

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

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

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

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

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


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