|
Как передать поле класса в метод реализующий интерфейс
|
|||
---|---|---|---|
#18+
Подскажите что делаю не так , есть абстрактный класс герой , от него наследуются Воин и Паладин , у Война тип атаки Ф-величина physAtt 30, при этом защита у Паладина physDef 50%, начальное состояние здоровья у паладина 100. Воин атакует Паладина , его Здоровье уменьшается на величину 15, так 30*0.5=15, конечное Здоровье 100-15=85, физическая атака реализуется через интерфейс interface PhysAttack (Hero hero) . Не понимаю как передать значение PhysDef от Паладина , при переопределении метода physicalAttack у Война ( warrior ) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 11:17 |
|
Как передать поле класса в метод реализующий интерфейс
|
|||
---|---|---|---|
#18+
x17.mstu, Если власс наслебник, то нет необходимости передаватьв интерфейсе методе параметром базовый класс ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 11:29 |
|
Как передать поле класса в метод реализующий интерфейс
|
|||
---|---|---|---|
#18+
x17.mstu, А что не компилируется? Поле можно сделать публичным. Или сделать публичный метод getPhysDef в вашем Hero. Но вообще этот путь с наследованиями ведет к куче проблем. Есть прекрасная серия блогпостов у Эрика Липперта (именно на примере игр!): часть 1 , часть 2 , часть 3 , часть 4 , часть 5 (там между частями лирическое отступление есть, поэтому дал ссылки на все). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 20:36 |
|
|
start [/forum/topic.php?fid=59&tid=2120623]: |
0ms |
get settings: |
24ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
125ms |
get tp. blocked users: |
2ms |
others: | 290ms |
total: | 539ms |
0 / 0 |