!!! У всех полей классов выставить модификатор доступа private Реализовать исключение «PersonDead» Наследовать класс от «Exception» Реализовать класс «Person» Поля класса - name:String, protection:Integer, health:Integer (+конструктор, +геттеры) Все Люди имеют 50 здоровья и защиту 0 У класса Person должно быть два конструктора - protected конструктор - все поля являются аргументами конструктора - public конструктор - задается только имя, остальное значения по умолчанию Метод - String announce() {} - возвращает строку в формате "Person /name/ имеет характеристики: /health/ здоровья и /protection/ защиты" Метод - void takeDamage(Integer damage) {} - вычитает урон из здоровья персонажа по формуле health - (damage - protection) Урон не может быть отрицательным (вызывать исключение Exception) Здоровье не может стать отрицательным Когда здоровье персонажа опускается до 0, выкидывается исключение PersonDead Метод - Integer facePunch() - удар в лицо наносит один урон Реализовать класс «Mage» Наследовать класс от «Person» Конструктор класса принимает только имя Все Маги имеют 100 здоровья и защиту 15 Метод(Переопределить) announce - возвращает строку в формате Mage + вызов метода announce у родителя Метод(Переопределить) takeDamage - вычитает урон из здоровья персонажа по формуле health - (damage - protection - health % 10) (Случайный баф) !!! Метод должен вызывать метод takeDamage super-класса Метод - Integer fireBall() - фаербол наносит 45 урона Реализовать класс «Archer» Наследовать класс от «Person» Конструктор класса принимает только имя Все Лучники имеют 120 здоровья и защиту 12 Метод(Переопределить) announce - возвращает строку в формате Archer + вызов метода announce у родителя Метод(Переопределить) takeDamage - вычитает урон из здоровья персонажа по формуле health - (damage - protection + health % 10) (Случайный дебаф) !!! Метод должен вызывать метод takeDamage super-класса Метод - Integer shootBow() - стрельба из лука наносит 40 + health % 10 урона */
Реализовать исключение «PersonDead»
Наследовать класс от «Exception»
Реализовать класс «Person»
Поля класса - name:String, protection:Integer, health:Integer (+конструктор, +геттеры)
Все Люди имеют 50 здоровья и защиту 0
У класса Person должно быть два конструктора
- protected конструктор - все поля являются аргументами конструктора
- public конструктор - задается только имя, остальное значения по умолчанию
Метод - String announce() {} - возвращает строку в формате "Person /name/ имеет характеристики: /health/ здоровья и /protection/ защиты"
Метод - void takeDamage(Integer damage) {} - вычитает урон из здоровья персонажа по формуле health - (damage - protection)
Урон не может быть отрицательным (вызывать исключение Exception)
Здоровье не может стать отрицательным
Когда здоровье персонажа опускается до 0, выкидывается исключение PersonDead
Метод - Integer facePunch() - удар в лицо наносит один урон
Реализовать класс «Mage»
Наследовать класс от «Person»
Конструктор класса принимает только имя
Все Маги имеют 100 здоровья и защиту 15
Метод(Переопределить) announce - возвращает строку в формате Mage + вызов метода announce у родителя
Метод(Переопределить) takeDamage - вычитает урон из здоровья персонажа
по формуле health - (damage - protection - health % 10) (Случайный баф)
!!! Метод должен вызывать метод takeDamage super-класса
Метод - Integer fireBall() - фаербол наносит 45 урона
Реализовать класс «Archer»
Наследовать класс от «Person»
Конструктор класса принимает только имя
Все Лучники имеют 120 здоровья и защиту 12
Метод(Переопределить) announce - возвращает строку в формате Archer + вызов метода announce у родителя
Метод(Переопределить) takeDamage - вычитает урон из здоровья персонажа
по формуле health - (damage - protection + health % 10) (Случайный дебаф)
!!! Метод должен вызывать метод takeDamage super-класса
Метод - Integer shootBow() - стрельба из лука наносит 40 + health % 10 урона
*/