Java 没有得到正确的输出

Java 没有得到正确的输出,java,inheritance,tostring,Java,Inheritance,Tostring,可能只是一个小错误,但我似乎在任何地方都找不到。当我运行该程序时,它会打印“存款100美元后:储蓄账户:”,而且我的取款类似乎不起作用,因为取款后的余额没有变化 public class CheckingandSavings { public static void main(String[] args) { Savings savings = new Savings(1001,1000.0); Checking checking = new Chec

可能只是一个小错误,但我似乎在任何地方都找不到。当我运行该程序时,它会打印“存款100美元后:储蓄账户:”,而且我的取款类似乎不起作用,因为取款后的余额没有变化

public class CheckingandSavings 
{

    public static void main(String[] args) {
        Savings savings = new Savings(1001,1000.0);
        Checking checking = new Checking(1002, 2000.0);

        System.out.println("At the beginning: " + savings);
        savings.deposit(100);
        System.out.println("After depositing $100: " + savings);
        savings.withdraw(500);
        System.out.println("After withdrawing $500: " + savings);

        System.out.println("");

        System.out.println("At the beginning: " + checking);
        checking.deposit(100);
        System.out.println("After depositing $100: " + checking);
        checking.withdraw(500);
        System.out.println("After withdrawing $500: " + checking);
    }
}

public class Account {

    private int accountNumber;
    private double accountBalance;

    //The Two-Arg Constructor
    public Account(int accountNumber, double accountBalance)
    {
        setAccountBalance(accountBalance);
        setAccountNumber(accountNumber);
    }

    //Getter for accountNumber
    public int getAccountNumber()
    {
        return accountNumber;
    }

    //Setter for accountNumber
    public void setAccountNumber(int accountNumber)
    {
        if (accountNumber >= 0)
            this.accountNumber = accountNumber;
    }

    //Getter for accountBalance
    public double getAccountBalance()
    {
        return accountBalance;
    }

    //Setter for accountBalance
    public void setAccountBalance(double accountBalance)
    {
        if (accountNumber >= 0)
            this.accountBalance = accountBalance;
    }

    //Deposit to accountBalance
    public void deposit(double amount)
    {
        if (amount > 0)
            this.accountBalance += amount;
    }

    //Withdraw from accountBalance
    public double withdraw(double amount)
    {
        if (amount > 0 || amount > this.accountBalance)
            return 0;

        this.accountBalance -= amount;
        return this.;
    }

    //Returns a string of the instance data
    public String toString()
    {
        String result = "";
        result += "Account Number: " + this.accountNumber;
        result += "\nAccount Balance: $" + String.format("%.2f", this.accountBalance);
        return result;
    }
}

public class Savings extends Account {

    //The two-arg constructor
    public Savings(int accountNumber, double accountBalance)
    {
        super(accountNumber, accountBalance);
    }

    //Returns a string of the instance data
    public String toString()
    {
        String result = "";
        result += "Savings Account: \n" + super.toString();
        return result;
    }
}

public class Checking extends Account {


    //The two-arg constructor
    public Checking(int accountNumber, double accountBalance)
    {
        super(accountNumber,accountBalance);
    }

    //Returns a string of the instance data
    public String toString() {
        String result = "";
        result += "Checking Account: \n" + super.toString();
        return result;
    }
}

看看您的取款方式:

//Withdraw from accountBalance
public double withdraw(double amount)
{
    if (amount > 0 || amount > this.accountBalance) //This needs to be &&
        return 0;

    this.accountBalance -= amount;
    return this.; //I am assuming you meant this to be this.accountBalance?
}
您的意思是,如果您要提取的金额大于0或大于您的帐户余额,请返回0。我想您应该这样说,然后将
amount>0&&amount>this.accountBalance

另外,您应该返回
this.accountBalance


最后,您应该将
@Override
注释放在
toString
方法之上。这会让编译器知道您正在重写父方法。

尝试发布相关代码,并将其格式设置得更好;-)或者自己调试并修复它。。。