|
|
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Хочу разобраться в каких случаях и как использовать интерфейс или абст. класс на примере. К примеру есть два типа война ... лучник и меченосец. Наверное правильно будет создать интерфейс война с методами к примеру атаковать и умереть. Код: java 1. 2. 3. 4. Соответственно каждый тип война будет реализовывать данный интерфейс и его методы по своему. Метод attack(iWarrior warrior) у меня вопросов не вызывает. Различные типы воинов убивают по разному используя при этом различные реализации. Метод die() по сути может иметь одинаковую реализацию для разных типов т.е тогда придется повторять реализацию для всех воинов. Как в этом случае поступить ? Использовать вместо интерфейса абстрактный класс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 07:00 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
TimRXДоброго времени суток. Хочу разобраться в каких случаях и как использовать интерфейс или абст. класс на примере. JDK8 и дефолтные методы. И выбор уже будет не по поведению, а по данным. PS: интерфейсы- костыль для тех, кто не понял множественного наследования. Увы, авторы java были из таких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 09:06 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
Alexey TominPS: интерфейсы- костыль для тех, кто не понял множественного наследования. Увы, авторы java были из таких. М-да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 09:45 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
TimRX, Интерфейс оставьте. Сделайте на базе него абстрактный класс война, в котором реализуйте метод die. А вот метод attack, оставьте для реализации уже конкретным экземплярам война. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:17 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
TimRX, тут сам собой паттерн Стратегия просится. Вот прям напрашивается! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:23 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
тогда, нужен ли вообще тут интерфейс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:25 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
rema174тогда, нужен ли вообще тут интерфейс? Я вот и интересуюсь. rema174Интерфейс оставьте. Сделайте на базе него абстрактный класс война, в котором реализуйте метод die. А вот метод attack, оставьте для реализации уже конкретным экземплярам война. Это понятно ... но ведь проще без интерфейса. Хотя скорей тут не как проще , а как правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:51 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
ну, товаристчъ Эккель советует в общем случае выбирать класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 10:58 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
TimRX, Нужен и интерфейс, и абстрактный класс, реализующий этот интерфейс. На случай, если потом появится другой абстрактный класс, или же кто-то не наследуясь от этого класса захочет реализовать интерфейс. При использовании везде пользуйтесь интерефейсом, это гибче. А реализацию делайте через наследование от абстрактного класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 11:09 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
Anatoly DTimRX, тут сам собой паттерн Стратегия просится. Вот прям напрашивается! Тут ИГРА Стратегия напрашивается.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 15:53 |
|
||
|
интерфейс или абстрактный класс
|
|||
|---|---|---|---|
|
#18+
HoBTIDTimRX, Нужен и интерфейс, и абстрактный класс, реализующий этот интерфейс. На случай, если потом появится другой абстрактный класс, или же кто-то не наследуясь от этого класса захочет реализовать интерфейс. При использовании везде пользуйтесь интерефейсом, это гибче. А реализацию делайте через наследование от абстрактного класса. Самый правильный ответ, на мой взгляд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2014, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38675028&tid=2127007]: |
0ms |
get settings: |
13ms |
get forum list: |
16ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
229ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 583ms |

| 0 / 0 |
