我正在编写一些代码,扩展了我为编程任务开发的另一个类。但是当我尝试编译程序时,我一直遇到一个错误:
CDAccount.java:11: cannot find symbol
symbol : constructor BankAccount()
location: class BankAccount
{
^
该计划如下:
import java.lang.IllegalArgumentException;
public class CDAccount extends BankAccount
{
Person owner_;
double balance_;
double rate_;
double penalty_;
public CDAccount(Person Owner, double Balance, double Rate, double Penalty)
{
if(Balance < 0)
{
throw new IllegalArgumentException("Please enter a positive Balance amount");
}
else
{
if(Rate < 0)
{
throw new IllegalArgumentException("Please enter a positive Interest Rate");
}
else
{
if(Penalty < 0)
{
throw new IllegalArgumentException("Please enter a positive Penalty amount");
}
else
{
if(Owner.equals(null))
{
throw new IllegalArgumentException("Please define the Person");
}
else
{
owner_ = Owner;
balance_ = Balance;
rate_ = Rate;
penalty_ = Penalty;
}
}
}
}
}
}
答案 0 :(得分:2)
您的CDAccount构造函数需要调用超类构造函数作为它的第一个语句。如果你没有明确地提出
super();
作为第一行,然后编译器将插入
super();
为你(无形)。
但是你的BackAccount类显然没有不带参数的构造函数,所以要么添加一个构造函数,要么显式添加对超类的调用,其参数为你有类似
的构造函数super(owner);
或者你想要传递给超类的任何东西。