类已经在null中定义

时间:2013-03-15 18:31:07

标签: java inheritance

当我尝试继承时出现错误“CheckingAccount已经在null中定义”。这是什么意思,我该如何解决这个问题呢? 这是我的代码:

public class BankAccount 
{
    double balance;

    public void Bankaccount() {
        balance = 0;
    }

    public BankAccount(double initialBalance) {
        initialBalance = balance;
    }

    public void deposite(double amount) {
        balance = balance + amount;
    }

    public void withdraw(double amount) {
        balance = balance - amount;
    }

    public double getBalance(double balance) {
        return balance;
    }

    public void transfer(double amount, double bankAccountOther) {
        balance = balance - amount;

    }
}

public class CheckingAccount 
{
    public class CheckingAccount extends BankAccount {
    }
}

有人可以帮助我,我真的不明白这意味着什么

7 个答案:

答案 0 :(得分:2)

你自己定义了相同的类,这就是问题所在:

public class CheckingAccount {
    public class CheckingAccount extends BankAccount{
    }
}

内部类的名称应该不同。或者你可能希望外部类扩展BankAccount?目前还不清楚你想要实施什么,但也许这就是你的目标:

public class CheckingAccount extends BankAccount{
}

答案 1 :(得分:1)

答案已经成功地给出了很多次,但我会在这段代码中添加一条无关的评论:

//constructor
    public void Bankaccount()
    {
    balance = 0;
    }

这不是构造函数。如果您希望它是构造函数,则必须删除void

答案 2 :(得分:0)

你应该只写 -

public class CheckingAccount extends BankAccount{

    }

而不是

public class CheckingAccount {
    public class CheckingAccount extends BankAccount{

        }
    }

答案 3 :(得分:0)

替换以下内容:

public class CheckingAccount {
public class CheckingAccount extends BankAccount{

    }
}

由此:

 public class CheckingAccount extends BankAccount{

 }

答案 4 :(得分:0)

您的错误很可能就在这里:

public class CheckingAccount {
public class CheckingAccount extends BankAccount{

    }
}

您在已存在的CheckingAccount类中定义了CheckingAccount类。我不认为你可以隐藏一个封闭的类型。

答案 5 :(得分:0)

1   class CheckingAccount {
2   public class CheckingAccount extends BankAccount {
3
4        }
5   }

删除上面的第1行和第5行,并在超类中添加无参数构造函数

答案 6 :(得分:0)

另一方面注意事项并非如此:

public BankAccount(double initialBalance) {
        initialBalance = balance;
    }

应该是

public BankAccount(double initialBalance) {
        balance = initialBalance;
    }

因为前者什么也没做。