如何在Java中使用多个使用单个@Override方法的方法?

时间:2015-12-30 02:51:29

标签: java

我正在使用Slick2D,它提供了一个用于绘制图形的渲染方法。有没有办法可以创建多个渲染方法,用于不同的目的(一个绘制矩形,一个绘制字符串......)?

@Override
public void render(GameContainer gc, Graphics g) throws SlickException {
    //What works
    g.drawRect(0, 0, 100, 100);
    g.drawString("Hello World", 0, 0);

    //What I wish I could do
    public void drawRect (int x, int y, int width, int height) {
        g.drawRect(x, y, width, height);
    }
    public void drawString (int x, int y, String text) {
        g.drawString (text, x, y);
    }
}

1 个答案:

答案 0 :(得分:1)

不,你不能这样做,但你可以做的是:

public void render(Graphics g)  {
      g.draw.....
}



@Override
public void render(GameContainer gc, Graphics g) throws SlickException {
    render(g);
}

原因首先是渲染方法是在您正在实现或扩展的某些类型的光滑中定义的。除非重写方法,否则不能使用@Override注释。 覆盖意味着再次定义超类的方法。

我向您展示的内容称为重载。您的方法具有相同的名称但参数不同。