Code Lab

Банковский и сберегательный счёт

СложнаяКлассы20 мин

Напиши класс BankAccount и его подкласс SavingsAccount.

  • new BankAccount(owner, balance) хранит владельца и баланс, по умолчанию баланс равен 0. Геттеры owner и balance возвращают их, а менять баланс можно только методами.
  • Метод deposit(amount) кладёт деньги, withdraw(amount) снимает их, и оба возвращают новый баланс. Если снимают больше, чем есть, брось new Error('Insufficient funds'). Если amount равен нулю или меньше, брось RangeError. После ошибки баланс не меняется.
  • new SavingsAccount(owner, balance, rate) наследует BankAccount и пользуется его методами. Ставка rate задана в процентах. addInterest() добавляет к балансу balance * rate / 100 без округления и возвращает новый баланс. При нулевых процентах баланс просто не меняется.

Примеры

new BankAccount('Ann', 100).deposit(50)

Вернёт 150

new BankAccount('Bob').balance

Вернёт 0

new SavingsAccount('Kate', 1000, 5).addInterest()

Вернёт 1050

Источник

Загружаем редактор...
  1. Конструктор сохраняет владельца и баланс, по умолчанию баланс 0
  2. deposit и withdraw возвращают новый баланс
  3. Снять больше баланса нельзя, ошибка Insufficient funds
  4. SavingsAccount является BankAccount и начисляет проценты

Скрытые тесты запускаются по Submit.