2014-02-22 92 views
0

您好我一直在试图用我的zeroparameter构造函数调用我的 SunkenObject构造与初始权重值,但由于某种原因,我不断收到此错误调用构造函数派生类

constructor SunkenObject in class 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; 
    } 


} 

谁能告诉我什么,我因为从我的角度看没有什么做错了,是错误的代码。谢谢!

回答

7

你的意思是这样的:

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

weight = 8.0f不调用超类的构造函数。

+0

哇感谢!工作 – user3330114

+0

@ user3330114不客气:) –

+0

@ user3330114有些时候我们只是失去了它..:P:D即使它只是相隔几步。 – agpt

0

具体类构造函数的第一个默认语句是​​调用语句。

因此,要使其工作,你要么删除

public RustyChain() 
{ 
weight = 8.0f; 
} 

或超类中添加一个无参数的构造类似这样的

public SunkenObject() 
{}