|
Наследование и типы
|
|||
---|---|---|---|
#18+
Всем привет! Java 8 Есть класс Message Код: java 1. 2. 3. 4. 5. 6. 7.
Есть класс SmppMessage, наследующий Message Код: java 1. 2. 3. 4. 5. 6.
Есть интерфейс Sender Код: java 1. 2. 3. 4. 5.
Есть класс SmppSender, реализующий интерфейс Sender Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Естественно getSender() на типе Message не доступен, выдаётся ошибка. Но если в реализации метода send указать тип SmppMessage, то выдаётся ошибка, что метод void send(Message message) не реализован: Код: java 1. 2. 3. 4.
Классов наследников класса Message будет несколько. Классов, реализующих интерфейс Sender тоже будет несколько. Как правильно с точки зрения ООП реализовать это на Java? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 13:39 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Molasar, один из вариантов это создать для наследников свои интерфейсы, добавив свои методы ну и заимпементив их. То бишь получается Message -> SmmpMessage -> SmmpMessageImpl. и в конкретном сендере можно использовать интерфейс SmmpMessage ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 13:42 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
MolasarНо если в реализации метода send указать тип SmppMessage, то выдаётся ошибка, что метод void send(Message message) не реализован: Код: java 1. 2. 3. 4.
Какое-то отсутствие критического мышления, от слова вообще. Вы хотя бы свои сообщения один раз прочитайте перед отправкой, иначе лютый треш получается. Или вместо фантазирования реально скомпилируйте приведённый код, тоже на некоторые мысли наведёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 13:52 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
MolasarКак правильно с точки зрения ООП реализовать это на Java? generics ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:11 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Слог страдает согласен. При компиляции выдается Uncompilable source code - javaapplication2.SmppDeliver is not abstract and does not override abstract method send(javaapplication2.Message) in javaapplication2.SmppSender alex55555MolasarНо если в реализации метода send указать тип SmppMessage, то выдаётся ошибка, что метод void send(Message message) не реализован: Код: java 1. 2. 3. 4.
Какое-то отсутствие критического мышления, от слова вообще. Вы хотя бы свои сообщения один раз прочитайте перед отправкой, иначе лютый треш получается. Или вместо фантазирования реально скомпилируйте приведённый код, тоже на некоторые мысли наведёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:12 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Задача в том, чтобы всё наследовалось от одного интерфейса с методом send(Message message) TsyklopMolasar, один из вариантов это создать для наследников свои интерфейсы, добавив свои методы ну и заимпементив их. То бишь получается Message -> SmmpMessage -> SmmpMessageImpl. и в конкретном сендере можно использовать интерфейс SmmpMessage ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:14 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
MolasarЗадача в том, чтобы всё наследовалось от одного интерфейса с методом send(Message message) Тогда приводить в нужному типу месседжа в конкретной реализации сендера. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:18 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Почему в таком виде преобразование не работает: Код: java 1.
А так работает Код: java 1. 2.
TsyklopMolasarЗадача в том, чтобы всё наследовалось от одного интерфейса с методом send(Message message) Тогда приводить в нужному типу месседжа в конкретной реализации сендера. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:34 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
MolasarПочему в таком виде преобразование не работает:скобки? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 14:46 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
chpashaMolasarКак правильно с точки зрения ООП реализовать это на Java? generics Тут выше человек уже дал один из правильных ответов: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 16:15 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 16:16 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
Озверин, последнюю конструкцию конечно же написать так: Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 16:16 |
|
Наследование и типы
|
|||
---|---|---|---|
#18+
MolasarПри компиляции выдается Uncompilable source code - javaapplication2.SmppDeliver is not abstract and does not override abstract method send(javaapplication2.Message) in javaapplication2.SmppSender Ну вот. А сразу точно скопировать текст не судьба была? Зачем отсебятину городить? А теперь просто переведите фразу из сообщения об ошибке. Там однозначно указано, что с вашим классом не так. Если вам всё ещё непонятно - сравните по буквам всё то, на что указывает ошибка со всем тем, что написали вы. И сразу всё станет ясно - буквы не сходятся. Но почему простое расхождение в буквах вы не можете увидеть самостоятельно? Вообще при изучении чего бы то ни было нужно хоть немного напрягаться. Если не будете, то всё за вас никто делать не будет. Даже если и подскажут чего (а часто подсказывают ту ещё отсебятину), то кто потом в реальной жизни за вас программы будет писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 15:27 |
|
|
start [/forum/topic.php?fid=59&msg=39772228&tid=2121485]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 167ms |
0 / 0 |