我使用扩展器OvalBall来获得超级球。以下是我的代码我收到一条错误消息,告诉我我不能使用子类OvalBall。有人可以帮忙解释一下吗?
public class Ball
{
private double diameter;
private String colour;
public Ball(double d, String c)
{
this.diameter = d;
this.colour = c;
}
public void setDiameter(double d)
{
this.diameter = d;
}
public double getDiameter()
{
return this.diameter;
}
public void setColour(String c)
{
this.colour = c;
}
public String getColour()
{
return colour;
}
public double bounce()
{
double height = diameter * 2;
return height;
}
public void roll()
{
System.out.println("wheeee");
}
public class OvalBall extends Ball
{
private double secondDiameter;
public void setSecondDiameter(double sd)
{
this.secondDiameter = sd;
}
public double getSecondDiameter()
{
return this.secondDiameter;
}
}
}
public class Main
{
public static void main(String[] args)
{
OvalBall na = new OvalBall(4,"blue",4);
na.setSDiameter(10);
System.out.println(na.bounce());
}
}
随意改变任何事情。
由于
答案 0 :(得分:0)
您需要将OvalBall
定义为static
或在其自己的文件中。
答案 1 :(得分:-1)
也许OvalBall没有实现hi基类的构造函数类 这就是为什么你不能创建一个OvalBall对象的原因。
class Ball {//This is you base class contructor
//Child class contructor
public class OvalBall extends Ball
{
public OvalBall(double d, String c)
{
base(d,c);
}
}
当你在java中创建嵌套类时,有一个不同的。创建对象实例而不是其他语言的方式就像C#一样。 试试这种方式。 or use my code as example
public class Main
{
public static void main(String[] args)
{
Ball.OvalBall na = na.new OvalBall(4,"blue",4);
na.setSDiameter(10);
System.out.println(na.bounce());
}
}