簡體   English   中英

從派生類調用構造函數

[英]calling a constructor from a derived class

嗨,我一直試圖使用我的zeroparameter構造函數來調用具有初始權重值的SunkenObject構造函數,但是由於某些原因,我一直收到此錯誤

in class SunkenObject中的constructor SunkenObject不能be applied to given types

required: float
  found: no arguments
  reason: actual and formal argument lists differ in length

這是我的SunkenObject構造函數:

public abstract class SunkenObject extends CatchableThing
{
   protected float weight;

   public SunkenObject(float w)
   {
     weight = w;
   }

  public float getWeight() { return weight; }

    public String toString () 
    {
        return (getClass().getSimpleName());
    }
}

這是SunkenObject擴展的對象(生銹的鏈)之一

public class RustyChain extends SunkenObject 
{

    public RustyChain (float w)
  {
    super(w);  
  }
   public RustyChain()
   {
     weight = 8.0f;
   }


}

誰能告訴我我在做什么錯,因為從我的角度來看,代碼沒有錯。 謝謝!

您的意思是這樣的:

public RustyChain() {
    super(8.0f);
}

weight = 8.0f不會調用超類構造函數。

具體的類構造函數的第一個默認語句是super(); 調用語句。

因此,要使其正常運行,您要么刪除

public RustyChain()
{
 weight = 8.0f;
}

或像這樣在超類中添加無參數構造函數

public SunkenObject()
{}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM