用对象实现Java接口
我有一个关于接口的问题。我有一个接口,它有一个叫做GameWorld的类的所有方法。游戏世界有一个叫做GameObject的类,可以是坦克、石头、导弹等用对象实现Java接口,java,interface,Java,Interface,我有一个关于接口的问题。我有一个接口,它有一个叫做GameWorld的类的所有方法。游戏世界有一个叫做GameObject的类,可以是坦克、石头、导弹等 public interface IGameWorld { public Point getLocation(); // GameObject public Color getColor(); public void setLocation(Point newCoord); public void setColor(Color newColor
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类 你可以移除游戏对象类
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();
对于上面的答案,我想补充一点,使用接口会使我们的代码松散耦合。所以,不要在需要的地方使用游戏对象界面 您的接口定义了所有类创建游戏所需的通用方法,因此我们可以使用:
IGameWorld marioGame = new GameWorld();
IGameWorld tankGame = new GameWorld();
等等。我不认为你的游戏对象类应该在你的游戏世界类里面。尝试在单独的文件中使它们成为公共类。然后,只有游戏世界将实现IGameWorld,而您的其他类(您提到的坦克、岩石、导弹等)将扩展GameObject。这就是接口的用途,不是吗?谢谢。我过一会儿再打给你,看看是否行得通。