代码的预期输出应为:"一切(否则)都可以"
但是当我运行我的天空类:实际输出如下:
Bad StratusCloud :: rain(意外) Bad CumulusCloud ::雨(意外) 平均高度差:预计1800,锯-1800.0(意外) 一切(其他)都可以(预期)
以下是我的代码:
package weather;
import java.util.ArrayList;
public class Sky {
private ArrayList<Cloud> clouds;
public Sky(){
clouds = new ArrayList<Cloud>(100);
}
public boolean add(Cloud c){
clouds.add(c);
return true;
}
public float getMeanHeight()
{
float mean = 0;
float sum = 0;
for (Cloud c:clouds){
sum = sum +c.getHeight();
mean = sum/(clouds.size());
}
return mean;
}
public static void main(String[] args)
{
StratusCloud strat = new StratusCloud(100, 1000);
if (!strat.rain().startsWith("It is raining"))
System.out.println("Bad StratusCloud::rain");
CumulusCloud cumu = new CumulusCloud(200, 2000);
if (!cumu.rain().startsWith("It is raining"))
System.out.println("Bad CumulusCloud::rain");
CirrusCloud cirr = new CirrusCloud(300, 3000);
if (!cirr.rain().startsWith("I cannot make"))
System.out.println("Bad CirrusCloud::rain");
Sky sky = new Sky();
sky.add(strat);
sky.add(cumu);
sky.add(cirr);
float mean = sky.getMeanHeight();
if (mean < 1799 || mean > 1801)
System.out.println("Bad mean height: expected 1800, saw " + mean);
System.out.println("Everything (else) is ok");
}
}
超级云:
package weather;
public class Cloud
{
private float top;
private float bottom;
public Cloud(float top, float bottom)
{
this.top = top;
this.bottom = bottom;
}
public float getHeight()
{
float height = top - bottom;
return height;
}
public String rain()
{
String raining = "It is rainning";
return raining;
}
}
以下是Cloud的子类:( 2个类的名称:CumulusCloud,StratusCloud)
package weather;
public class "name" extends Cloud
{
public "name"(float top,float bottom)
{
super(top,bottom);
}
}
覆盖的云的子类:
package weather;
public class CirrusCloud extends Cloud{
public CirrusCloud(float top, float bottom)
{
super(top,bottom);
}
public String rain(){
super.rain();
String raining ="I cannot make rain";
return raining;
}
}
答案 0 :(得分:1)
检查拼写。在您的Cloud类中,它是
rainning
但在Sky课程中
下雨