我对接口有疑问。我有一个接口,该接口具有称为GameWorld的类的所有方法。 GameWorld拥有一个称为GameObject的类,可以是坦克,岩石,导弹等。

public interface IGameWorld
{
public Point getLocation(); // GameObject
public Color getColor();
public void setLocation(Point newCoord);
public void setColor(Color newColor);
}


我想在GameWorld的GameObject类中的IGameWorld中实现这些方法。这样的东西。

public class GameWorld implements IGameWorld
{
  // vector to hold gameobjects
public class GameObject
{
 private Point location;
 private Color color;     // all objects have a random color
GameObject()
{
  // method
}
public Point getLocation()
{
  // method
}
public Color getColor()
{
  // method
}
public void setLocation (Point newCoord)
{
  // method
}
public void setColor (Color newColor)
{
  // method
}
 }
}


那可能吗?如果不是,那么替代方法是什么?谢谢。

最佳答案

您可以创建类的实例/对象。无需定义代表您的对象的单独的类。无论如何,您做错了,因为GameWorld类实现IGameWorld,而GameWorld必须实现所有方法,而不是GameObject类。

您可以删除GameObject类

public class GameWorld implements IGameWorld
{
 private Point location;
 private Color color;     // all objects have a random color
public Point getLocation()
{
  // method
}
public Color getColor()
{
  // method
}
public void setLocation (Point newCoord)
{
  // method
}
public void setColor (Color newColor)
{
  // method
}
}


然后制作这个具体类的实例/对象

IGameWorld gameObject = new GameWorld();

07-24 15:57