1、使用继承创建一个父类Account(帐户),该父类具有两个名为SavingsAccount(储蓄帐户)和CheckingAccount(信用卡帐户)的子类。
在Account类中使用参数化构造函数初始化两个字段:name(姓名)和balance(余额)。声明方法以返回这些字段中存储的值。字段balance应该根据发生的交易而更新。
SavingsAccount类应该具有附加字段interestRate(利率)。CheckingAccount类具有附加字段overDraft(可透支金额)。SavingsAccount类和CheckingAccount类应该具有两个参数化构造函数,一个用于接收两个参数(以初始化父类的name和balance字段),另一个用于接受3个参数以初始化所有3个成员。
提款时CheckingAccount类应该执行以下检查:
1) 如果要提取的amount小于balance,那么交易继续进行。
2) 如果amount大于balance且大于balance和overDraft金额的和,那么交易应该被取消。
3) 如果amount大于balance且小于balance和overDraft金额的和,那么balance的值应该变为0,overDraft金额的值应该足够支付balance和amount之间的差。
编写测试类,显示用户John,初始余额为500.0,利率为0.04,存款200.0,取款1000.0的过程的相关信息,显示用户Stephen,初始余额为200.0,存款200.0,可透支金额为300.0,取款500.0的过程的相关信息。class Account {
String name;
double balance;
Account(String name, double balance) {
this name = name;
this balance = balance;
}

public String getName() {return name;}
public double getBalance() {return balance;}
}class SavingsAccount extends Account {
double interestRate;
SavingsAccount(double interestRate) {
this.interestRate = interestRate;
}
}class CheckingAccount extends Account {}

解决方案 »

  1.   

    要学会自己独立完成,这个题目不难,如果真不会,去Google,不要老想copy,自己用心了才会有进步。楼主加油!
      

  2.   

    楼主可以参考,题目中的利率没写明具体用处,所以没用,楼主可以分析题之后改一下:package com.account;public class Account {
    String name;
    double balance;

    Account(String name,double balance){
    this.name = name;
    this.balance = balance;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public double getBalance() {
    return balance;
    } public void setBalance(double balance) {
    this.balance = balance;
    }


    }package com.account;public class SavingsAccount extends Account{ double interestRate;

    SavingsAccount(String name, double balance) {
    super(name, balance);
    }

    SavingsAccount(String name, double balance, double interestRate){
    super(name, balance);
    this.interestRate = interestRate;
    }

    public void putMoney(double mount){
    super.balance += mount;
    System.out.println(super.name + "'s account : balance now is : " + super.balance);
    }}
    package com.account;public class CheckingAccount extends Account{ double overDraft;
    CheckingAccount(String name, double balance) {
    super(name, balance);
    }

    CheckingAccount(String name, double balance, double overDraft) {
    super(name, balance);
    this.overDraft = overDraft;
    }

    public void getMoney(double amount){
    if(amount < this.balance){
    System.out.println(super.name + "'s account :  Can get money,continue...");
    super.balance = super.balance - amount;
    }else if(amount > this.balance && amount > (this.balance + this.overDraft)){
    System.out.println(super.name + "'s account :  Money is not enough!!!");
    }else if(amount > this.balance && amount <= (this.balance + this.overDraft)){
    super.balance = 0;
    System.out.println(super.name + "'s account : overDraft is enough,can get money...");
    }
    }
    }package com.account;public class Test { public static void main(String[] args) {
    Account a1 = new Account("John",500.0);

    SavingsAccount sa1 = new SavingsAccount(a1.getName(),a1.getBalance());
    sa1.putMoney(200.0);

    CheckingAccount ca1 = new CheckingAccount(a1.getName(),a1.getBalance(),300.0);
    ca1.getMoney(1000.0);


    Account a2 = new Account("Stephen",200.0);

    SavingsAccount sa2 = new SavingsAccount(a2.getName(),a2.getBalance());
    sa2.putMoney(200.0);

    CheckingAccount ca2 = new CheckingAccount(a2.getName(),a2.getBalance(),300.0);
    ca2.getMoney(500);
    }}