Java抽象继承银行账户问题

信用类账户和储蓄类账户相互转账
方法transfer(Account a,double money)


public abstract class  AbstractAccount{


}



package Student;

import java.util.Date;


public class Account  extends AbstractAccount{
    private String id;
    private String name;
    private double balance;
    private Date dateCreated = new Date();

    public Account(String id, String name) {
        this.id = id;
        this.name = name;
    }
    // 构造对应的set和get方法
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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;
    }

    public Date getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    void withdraw(double Moneywithdraw) {//构造取款方法
        if (balance - Moneywithdraw < 0) {//判断
            System.out.println("余额不足,不可以取款");
        } else {
            balance = balance - Moneywithdraw;
            System.out.println("账户余额:" + balance);
        }
    }

    void deposit(double Moneydeposit) {//构造存款方法
        balance = balance + Moneydeposit;
        System.out.println("账户余额:" + balance);
    }

    void transfer(Account a, double money) {//构造转账方法
        if (balance < money) {//判断
            System.out.println("余额不足,不可以转账");
        } else {
            balance = balance - money;
            System.out.println("账户余额:" + balance);
        }
    }

    public String toString() {
        return ("账号:" + id + "\t实名:" + name + "\t账户余额" + balance + "\t开户时间:" + dateCreated);
    }
}

测试类


package Student;

public class TestAccount {

    public static void main(String[] args) {
        Account p1 = new Account("200405216", "蜡笔小新");// 创建账户对象
        p1.deposit(3000);
        System.out.println(p1.toString());
        p1.withdraw(2500);
        System.out.println(p1.toString());// 创建另一个账户对象
        Account p2 = new Account("200205218", "胡图图");
        p1.transfer(p2, 100);
        System.out.println(p1.toString());
        System.out.println(p2.toString());
        // 测试取钱和转账时余额不足的情况
        p1.withdraw(2500);
        p1.transfer(p2, 100);
        System.out.println(p1.toString());
        System.out.println(p2.toString());
    }

}