/
AnatoliyMatveev
/
Practic4
Обзор
Документация
Войти
/
AnatoliyMatveev
/
Practic4
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Account.java
80 строк
2 KB
AnatoliyMatveev
create: Account.java
11 май 2026, 15:19
Верифицирован
11 май 2026, 15:19
4d00d0b
Код
Авторство
О чём код?
public abstract class Account { protected long balance; public Account(long balance) { this.balance = balance; } public abstract boolean add(long amount); public abstract boolean pay(long amount); public boolean transfer(Account account, long amount) { if (pay(amount)) { if (account.add(amount)) { return true; } else { add(amount); return false; } } return false; } public long getBalance() { return balance; } } // Обычный счет class SimpleAccount extends Account { public SimpleAccount(long balance) { super(balance); } @Override public boolean add(long amount) { balance += amount; return true; } @Override public boolean pay(long amount) { if (balance >= amount) { balance -= amount; return true; } return false; } } class CreditAccount extends Account { private final long limit; public CreditAccount(long limit) { super(0); this.limit = Math.abs(limit); } @Override public boolean add(long amount) { if (balance + amount <= 0) { balance += amount; return true; } return false; } @Override public boolean pay(long amount) { if (Math.abs(balance - amount) <= limit) { balance -= amount; return true; } return false; } }