2011-04-29 138 views
0

我正在编写一些扩展了另一个为编程任务开发的类的代码。但是我一直陷入与一个单一的错误,当我尝试编译我的程序:找不到符号错误

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

请张贴您的BankAccount类。 – Esse 2011-04-29 04:09:49

回答

2

你CDAccount构造neesd调用父类的构造函数,因为它是第一个声明。如果不明确提出

super(); 

的第一线,那么编译器会插入

super(); 

你(无形)。

但是你BackAccount类显然不会有一个构造函数没有参数,所以无论是添加一个构造函数,做,或者明确地添加一个调用父类与你有一样

super(owner); 
一个构造函数的参数

或任何你想传递给超类。

+0

我不认为有必要创建一个没有任何参数的构造函数,因为它是默认提供的。它不应该是错误的原因。 – Logan 2011-04-29 04:39:04

+1

@Logan - 如果'BankAccount'声明*任何构造函数,它将不会有默认的无参数构造函数。这是编译错误的最可能原因。 – 2011-04-29 05:11:06