Java - 继承&构造函数错误

时间:2015-07-21 16:44:10

标签: java inheritance types constructor

由于构造函数存在问题,我在编译代码时遇到错误。

这是我的父类构造函数:

   public BankAccount(final String theNameOfOwner, final double theInterestRate)
   {
      myName = theNameOfOwner;
      myInterestRate = theInterestRate;
      myBalance = 0;
      myMonthlyWithdrawCount = 0;
      myMonthlyServiceCharges = 0;
   }

这是我的子类构造函数:

   public SavingsAccount(final String theNameOfOwner, final double theInterestRate)
   {
      BankAccount(theNameOfOwner, theInterestRate);
      myStatusIsActive = false;
      myWithdrawalCounter = 0;
   }

我收到以下错误:

SavingsAccount.java:7: error: constructor BankAccount in class BankAccount cannot be applied to given types;
   {
   ^
  required: String,double
  found: no arguments
  reason: actual and formal argument lists differ in length

错误说我在我的子构造函数中的BankAccount调用中需要String,double参数,如果我正确理解这一点。唯一的问题是看起来我的参数是正确的。任何帮助/输入都会非常感激,因为我刚刚开始编程Java!谢谢!

2 个答案:

答案 0 :(得分:3)

这不是调用超类构造函数的方法。编译器认为您正在尝试调用一个名为BankAccount的方法,该方法不存在。因为没有对超类构造函数的显式调用,所以它会尝试将隐式调用插入到默认的超类构造函数中,并且这也不存在,从而导致您看到编译器错误。

使用super关键字来调用超类构造函数。变化

BankAccount(theNameOfOwner, theInterestRate);

super(theNameOfOwner, theInterestRate);

答案 1 :(得分:1)

我认为导致错误的行所需要的是以下内容:

super(theNameOfOwner, theInterestRate);