abstract class Account {
protected int accountNumber;
protected double balance;
public Account(int accountNumber) {
this.accountNumber = accountNumber;
this.balance = 0.0;
}
public void setBalance(double balance) {
this.balance = balance;
}
public abstract int getAccountNumber();
public abstract double getBalance();
}
class Checking extends Account {
public Checking(int accountNumber) {
super(accountNumber);
}
@Override
public int getAccountNumber() {
return accountNumber;
}
@Override
public double getBalance() {
return balance;
}
public void display() {
System.
out.
println("Checking Account Information " + accountNumber
+ " $" + balance
); }
}
class Savings extends Account {
private double interestRate;
public Savings(int accountNumber, double interestRate) {
super(accountNumber);
this.interestRate = interestRate;
}
@Override
public int getAccountNumber() {
return accountNumber;
}
@Override
public double getBalance() {
return balance;
}
public void display() {
System.
out.
println("Savings Account Information " + accountNumber
+ " $" + balance
+ " rate " + interestRate
); }
}
public class Main {
public static void main
(String[] args
) { Account[] accounts = new Account[10];
int checkingNum = 101;
int savingsNum = 201;
for (int i = 0; i < accounts.length; i++) {
if (i % 2 == 0) {
accounts[i] = new Checking(checkingNum);
checkingNum++;
} else {
double rate = 2.0 + (i * 0.1);
accounts[i] = new Savings(savingsNum, rate);
savingsNum++;
}
}
for (Account acc : accounts) {
if (acc instanceof Checking) {
((Checking) acc).display();
} else if (acc instanceof Savings) {
((Savings) acc).display();
}
}
}
}