create two subclasses for checking and saving accounts. a checking account has a
ID: 3625043 • Letter: C
Question
create two subclasses for checking and saving accounts. a checking account has an overdraft limit, but a saving account cannot be overdrawn. Add a descriptive toString method I have this for the Account Class, but the Checking class is a mess.public class Account {
// PRIVATE DATA FIELDS
private int id;
private double balance;
private double annualInterestRate;
// CREATE DATECREATED OBJECT
private java.util.Date dateCreated;
// NO ARGS CONSTRUCTOR
public Account() {
id = 0;
balance = 0.0;
annualInterestRate = 0.0;
dateCreated = new java.util.Date();
}
// CONSTRUCTOR RETURNS ID AND BALANCE
public Account(int newId, double newBalance) {
id = newId;
balance = newBalance;
annualInterestRate = 0.0;
dateCreated = new java.util.Date();
}
// GET AND SET METHOD FOR ID
public int getId() {
return id;
}
public void setId(int newId) {
id = newId;
}
// GET AND SET METHOD FOR BALANCE
public double getBalance() {
return balance;
}
public void setBalance(double newBalance) {
balance = newBalance;
}
// GET AND SET METHOD FOR ANNUAL INTEREST RATE
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double newAnnualInterestRate) {
annualInterestRate = newAnnualInterestRate;
}
// GET DATECREATED METHOD
public java.util.Date getDateCreated() {
return dateCreated;
}
// GET MONTHLY INTEREST RATE
public double getMonthlyInterestRate() {
return annualInterestRate / 12;
}
// Method to withdraw money, but makes sure enough in balance first
public boolean withdraw(double transaction) {
balance = balance -= transaction;
return true;
}
// Method to deposit money
public boolean deposit(double transaction) {
balance = balance += transaction;
return true;
}
// PUBLIC STRING to return results
public String toString() {
return "id: " + id + " balance: $" + balance + " monthly interrest rate: " + getMonthlyInterestRate() + " date created: " + dateCreated ;
}
}
Explanation / Answer
public class SavingsAccount extends Account
{
public SavingsAccount(){}
public SavingsAccount(int newId, double newBalance)
{
super(newId, newBalance);
}
// a savings account cannot be overdrawn
public boolean withdraw(double transaction)
{
if(balance < transaction)
return false;
else
return super.withdraw(transaction);
}
}
public class CheckingAccount extends Account
{
private double overdraftLimit;
public SavingsAccount(){}
public SavingsAccount(int newId, double newBalance, double overdraftLimit)
{
super(newId, newBalance);
setOverdraftLimit(overdraftLimit);
}
public void setOverdraftLimit(double o)
{
overdraftLimit = o;
}
public double getOverdraftLimit()
{
return overdraftLimit;
}
// a checking account can be overdrafted up to overdraft limit
public boolean withdraw(double transaction)
{
if(balance +overdraftLimit < transaction)
return false;
else
return super.withdraw(transaction);
}
public String toString()
{
return super.toString()+" Overdraft limit: "+overdraftLimit;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.