Код работает, но я хотел бы лучше понять тему и не знаю, как назвать проблему. Как возможно, что в методе абстрактного класса я могу вызвать метод интерфейса, если метод интерфейса пуст? Может ли кто-нибудь рассказать мне, как эта операция называется на Java? В моих классах uni, которые я посещаю, слайд называет проблему «Программирование через API», но я не могу найти что-либо, когда я это делаю.вызов метода интерфейса в методе абстрактного класса
У меня есть класс интерфейса, который имеет метод getBalance:
public interface BankAccount {
int getBalance();
...
}
Тогда я вызывающий метод интерфейса в абстрактном методе класса:
public abstract class AbstractBankAccount implements BankAccount {
private final bankAccountNo;
private int accountBalance;
abstractBankAccount(int bankAccountNo) {
this.bankAccountNo = bankAccountNo;
}
public void transferBalance(bankAccount account) {
// so here is what I am struggling to understand: account.getBalance() is called, but getBalance() method in interface is empty, how does it work then?
final int accountBal = account.getBalance();
if (accountBal < 0)
throw new IllegalArgumentException("not enough money on the account");
accountBalance += accountBal;
account.withdraw(accountBal);
}
}
Спасибо, что очищает вещи для меня. Это такое действие в Java, называемое «программирование по интерфейсу»? – FervidWhirl