Suppose we wish to add a half point to the interest rate for b[2].
We can't write
BankAccount[] b = new BankAccount[3];
double newRate = b[2].getRate() + 0.5;
b[2].setRate( newRate);
We get errors at both b[2].getRate() and b[2].setRate because the
declared type of b[2] is BankAccount, not SavingsAccount.
Any SavingsAccount is a kind of BankAccount
but
A BankAccount is not necessarily a SavingsAccount.
We can try a cast:
((SavingsAccount) b[2]).getRate()
This is called a "downcast" because SavingsAccount is a
subclass of BankAccount and we are casting the type to a subtype.
BankAccount
|
|
SavingsAccount