为什么我的java EXTENDS不起作用?

时间:2015-03-04 14:54:58

标签: java extends

我使用扩展器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());
  }
}

随意改变任何事情。

由于

2 个答案:

答案 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());
  }
}