gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:11:28 25 4
gpt4 key购买 nike

这是我的父类(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);
}
}
}

它在编译子类时给出了一个异常,说 “类 BankAccount 中的构造函数 BankAccount 不能应用于给定类型;需要:java.lang.String;找到:没有参数;原因:实际和形式参数列表不同长度”

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

最佳答案

你的父类构造函数声明为

public BankAccount(String name)

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

通过不显式地为您的CheckingAccount 类提供构造函数,Java 编译器会创建一个看起来像

public CheckingAccount() {
super();
}

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

你需要改变它。声明一个带有适当参数的构造函数并将其传递给父级。

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com