java - 未知错误阻止子类的构造

标签 java

这是我的父类(super class):

public abstract class BankAccount
{
    private String name;
    private double balance;
    final int OVERDRAFT_FEE = 35;
    private static int accountNum=0;
    public BankAccount(String name)
    {
        this.name=name;
        balance=0;
        accountNum++;
    }

    //various methods omitted

    public abstract void endOfMonth();
    public String toString(BankAccount account)
    {
        return "Account Name: "+name+"\nBalance: $"+balance+"\nAccount Number: "+accountNum;
    }
}

这是我的子类:

public class CheckingAccount extends BankAccount
{
    final int TRANSACTION_LIMIT = 3;
    final int MINIMUM_BALANCE = 50;
    final int FEE = 10;
    private int transactionCount;

    // various methods omitted

    public void endOfMonth()
    {
        if(transactionCount>TRANSACTION_LIMIT)
        {
            int extra = transactionCount-TRANSACTION_LIMIT;
            int extra_fee = FEE*extra;
            super.setBalance((super.getBalance)-extra_fee);
        }
        if(super.getBalance()<MINIMUM_BALANCE)
        {
            super.setBalance((super.getBalance)-FEE);
        }
    }
}

在编译子类时,它给了我一个异常(exception):"constructor BankAccount in class BankAccount cannot be applied to given types; required: java.lang.String; found: no arguments; reason: actual and formal argument lists differ in length"

一开始我以为这是抽象方法的问题,但摆脱它并没有解决任何问题。想法?

最佳答案

您的父类构造函数声明为

public BankAccount(String name)

换句话说,它需要一个String参数。

通过不显式地为 CheckingAccount 类提供构造函数,Java 编译器会创建如下所示的构造函数

public CheckingAccount() {
    super();
}

换句话说,它不向您的父构造函数提供任何参数。

你需要改变这一点。使用适当的参数声明一个构造函数并将其传递给父级。

public CheckingAccount(String name) {
    super(name);
}

关于java - 未知错误阻止子类的构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082575/

相关文章:

java - 如何正确地对属性更改进行单元测试?

java - Hibernate生产使用警告

java - 与 Joda Time 的日期差

java - 如何在java中使用对象列表的列表?

java - "} expected"看似完整的声明

java - java构造函数中的自赋值

java - 基准硬盘

java - 在哪里锁定以进行实体行的原子获取或创建

java - 如何使用旋转项目

java - Guava Lists.transform 是否保证顺序?