1) add toString method to BankAccount and SavingsAccount
classes
2) Override the withdraw() in SavingsAccount so that it will not
withdraw more money than is
currently in the account.
3) Provide constructors for SavingsAccount
4) Add this feature to SavingsAccount: If you withdraw more than 3
times you are charged $10 fee
and the fee is immediately withdrawn from your account.once a fee
is deducted you get another 3 free withdrawals.
5) Implement the Comparable Interface for SavingsAccount based on
balance.
Once you finish adding/modifying the code make sure it compiles and
run.
Submit your modified InheritanceTester.java file to the assignment
folder
Warning: Notice that there are 3 classes in one file, and only
one of them is public,
and this public class name should be the filename. Be careful about
the { } braces.
public class InheritanceTester{
public static void main(String[] args){
SavingsAccount tom = new SavingsAccount(5000);
SavingsAccount kim = new SavingsAccount();
tom.withdraw(100);tom.withdraw(1000);tom.withdraw(200);
kim.withdraw(100);//should print error message: Insufficient
balance
System.out.println(tom);//should print $3700 as balance
tom.withdraw(1000);
System.out.println(tom);//should print $2690 as balance, and fee
charged
tom.withdraw(1000);
System.out.println(tom);//should print $1690 as balance
}
}
class BankAccount
{
private double balance;
public BankAccount()
{ balance = 0; }
public BankAccount(double initialBalance)
{ balance = initialBalance; }
public void deposit(double amount)
{ balance = balance + amount; }
public void withdraw(double amount)
{ balance = balance - amount; }
public double getBalance()
{ return balance; }
}
class SavingsAccount extends BankAccount{
//add code here.
}
Solution :-
Program: In this program, we create the class SavingsAccount which extends BankAccount class. It has two constructors, one default and one arguments constructor, and 4 other methods. Both classes have a toString() method to display information.
Code:
public class InheritanceTester{ public static void main(String[] args){ //Creating objects and testing SavingsAccount tom = new SavingsAccount(5000); SavingsAccount kim = new SavingsAccount(); tom.withdraw(100); tom.withdraw(1000); tom.withdraw(200); kim.withdraw(100);//should print error message: Insufficient balance System.out.println(tom);//should print $3700 as balance tom.withdraw(1000); System.out.println(tom);//should print $2690 as balance, and fee charged tom.withdraw(1000); System.out.println(tom);//should print $1690 as balance } } //Class BankAccount class BankAccount { private double balance; public BankAccount() { balance = 0; } public BankAccount(double initialBalance) { balance = initialBalance; } public void deposit(double amount) { balance = balance + amount; } public void withdraw(double amount) { balance = balance - amount; } public double getBalance() { return balance; } @Override public String toString() { return "BankAccount: " + "Balance = $" + balance; } } //SavingsAccount class class SavingsAccount extends BankAccount{ //add code here. //Member variables for balance and withdraw count checker private double balance; int countCheck; //Constructor public SavingsAccount() { balance = 0; } //Args Constructor public SavingsAccount(double initialBalance) { this.balance = initialBalance; } //Function to deduct $10 after 3 withdraws public void withdrawDeduction() { balance = balance - 10; countCheck = 0; } //Withdraw function of Bank Account class modified @Override public void withdraw(double amount) { if ((balance - amount < 0) || (amount < 0)) { System.out.println("Insufficient Balance"); } else { balance = balance - amount; countCheck++; if (countCheck > 3) { withdrawDeduction(); } } } //ToString() method @Override public String toString() { return "SavingsAccount: " + "Balance = $" + balance; } //Compares to method public int compareTo(SavingsAccount other) { if(balance < other.balance) return -1; if(balance == other.balance) return 0; return 1; } }
Output:
Get Answers For Free
Most questions answered within 1 hours.