Вам нужно вызвать super.withdraw (double) из подкласса.
Также
super.getBalance() -= amount;
Это ничего не значит. Вы не можете вычесть и присвоить значение методу, только переменной. Это не логично. Замените на то, что я сказал, super.withdraw (сумма).
Также
в BasicAccount # изъять, у вас есть this.balance, но вы хотите сказать super.balance, потому что этот класс, BasicAccount, не определяет члена класса баланса, однако супер класс BankAccount делает.
Также
BasicAccount(double initialBalance) {
}
Вам нужно вызвать super (initialBalance), потому что сейчас вы не вызываете супер конструктор, который назначает баланс.
BasicAccount(double initialBalance) {
super(initialBalance);
}
Также (oof)
public BankAccount() {
balance = 0;
}
Вместо создания конструктора по умолчанию, который делает то же самое, что и другой, либо удалите его, так как баланс 0 по умолчанию, или вызовите другой конструктор, который имеет цель.
public BankAccount() {
this(0);
}
Теперь ваш начальный конструктор баланса может выполнить некоторые полезные проверки крайнего случая, от которых выигрывает конструктор no-args.
public BankAccount(double initialBalance) {
if (initialBalance < 0) {
throw new IllegalArgumentException("Initial balance cannot be below zero.");
}
balance = initialBalance;
}