我正在尝试用Java制作迷宫游戏。
Explorer类代表用户,而DrawableExplorer是以图形方式代表用户的代码。 DrawableExplorer实现了Drawable接口,其中包含:
import java.awt.Graphics;
public abstract interface Drawable
{
public abstract void draw(Graphics paramGraphics);
}
但是此编译成功,但是我无法弄清楚为什么我的DrawableExplorer类不是:
import java.awt.*;
public class DrawableExplorer extends Explorer implements Drawable
{
public DrawableExpolorer(Square location, Maze maze, String name)
{
public void draw(Graphics g)
{
Square location = location();
get.setColor(Color.BLUE);
g.fillOval(loc.x() + 10, loc.y() + 10, 30, 30);
}
}
}
它正在请求返回类型,但是我的方法不是无效的吗?
编译器错误消息显示“无效的方法声明;需要返回类型”
您需要将类声明为:
public class DrawableExplorer extends Explorer implements Drawable
即extends
子句必须before implements
子句。
另一个错误是您已经在draw
的构造函数主体中声明了DrawableExplorer
方法。假设您已经定义了一个带有三个参数的构造函数,则通常需要在构造函数主体中对其进行处理(当前您将其忽略)。例如通过将它们分配给实例变量。
我很确定您不能在构造函数中声明方法。编译器甚至不知道应该包含什么内容,因此它为您提供了第一个可以为您提供的明显错误修复程序。编译器看不到您想要做什么。它只是为遇到的最小问题提供解决方案。