您有没有办法在两个不同的类之间使用相同的add()方法(向数组添加内容)?例如,我的湖类有以下add()方法:
public void add (Fish aCatchableThing)
{
if (numThings < catchableThings.length)
{
catchableThings[numThings++] = aCatchableThing;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码:
public class FishingTestProgram3
{
public static void main(String [] args)
{
Lake weirdLake = new Lake(21);
weirdLake.add(new AuroraTrout(76, 6.1f));
weirdLake.add(new Tire());
weirdLake.add(new Perch(32, 0.4f));
weirdLake.add(new Bass(20, 0.9f));
weirdLake.add(new Treasure());
weirdLake.add(new Perch(30, 0.4f));
weirdLake.add(new AtlanticWhiteFish(140, 7.4f));
weirdLake.add(new RustyChain());
weirdLake.add(new Bass(15, 0.3f));
weirdLake.add(new Tire());
Run Code Online (Sandbox Code Playgroud)
这将是有效的(使用继承,即EndangeredFish extends fish, and Perch extends EndangeredFish )对于所有添加的鱼,但它不起作用的对象(即Tire,RustyChain,Treasure).Tire,RustyChain和Treasure是扩展SunkenObject类的类,它实际上是空的:
public abstract class SunkenObject
{
}
Run Code Online (Sandbox Code Playgroud)
我尝试在湖类中创建第二个添加方法但是没有成功.我想知道是否有人对这如何运作有任何想法?在那里我可以将所有东西(即鱼和沉没对象)添加到同一个数组中,以便何时
public void listAllThings() …Run Code Online (Sandbox Code Playgroud) 您好我一直在尝试使用我的zeroparameter构造函数调用我的SunkenObject构造函数与初始权重值但由于某种原因我不断收到此错误
constructorSunkenObject in classSunkenObject不能be applied to given types;`
required: float
found: no arguments
reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)
这是我的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());
}
}
Run Code Online (Sandbox Code Playgroud)
这是SunkenObject扩展的对象之一(生锈的链)
public class RustyChain extends SunkenObject
{
public RustyChain (float w)
{
super(w);
}
public RustyChain()
{
weight = …Run Code Online (Sandbox Code Playgroud)