我正在尝试用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);
}
}
}
它要求返回类型,但不是我的方法无效吗?
编译器错误消息显示“无效的方法声明;需要返回类型”
答案 0 :(得分:3)
您需要将该类声明为:
public class DrawableExplorer extends Explorer implements Drawable
即。 extends
子句必须在之前 implements
子句。
另一个错误是您已在draw
的构造函数体内声明了DrawableExplorer
方法。鉴于您已经定义了一个带有三个参数的构造函数,您通常希望在构造函数体中处理它们(您当前忽略它们);例如通过将它们分配给实例变量。
答案 1 :(得分:0)
我非常确定您不能在构造函数中声明方法。编译器甚至不知道应该包含什么内容,因此它为您提供了第一个可以为您提供的明显错误修复程序。编译器看不到您想要做什么。它只是为遇到的最小问题提供解决方案。