2011-04-29 194 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