Java可实现的类创建?

时间:2013-10-07 18:31:44

标签: java user-interface implementation game-engine

所以我想制作一个游戏引擎,我立即意识到这些东西必须“自动导入”。例如,当您implements Runnable时,您会收到错误,因为它必须在类中使用run()方法。

你是怎么做到的?我如何实现一个类,FORCE一个方法,然后自动运行这个方法?

一个例子,在回答时可用:

我有一个Frame类。这个框架类在实现时,总是在实现它的类中使用一个名为draw()的方法,并且必须实现它才能使用框架类。示例代码:

public class test implements HFrame {
    // constructor
    public test() {

    }

    // method called when test is run
    public static void init() {
        HFrame f = new HFrame(WIDTH, HEIGHT);
        f.display(); // makes the frame visible
    }

    // method that frame will always call when it is implemented
    public void draw() {
        // stuff to draw
        new Circle(0, 0, 50, 50);
    }
}

使用评论,我将如何使其发挥作用?

感谢您的帮助,如果这不是最好的话,我道歉......

3 个答案:

答案 0 :(得分:1)

使用您要运行的方法创建一个接口。将使用的所有类都必须实现该接口。这正是Runnable的工作原理:Runnable是一个具有一个方法void run()的接口,线程可以调用该接口来执行runnable。

答案 1 :(得分:1)

为了“强制”一个类来实现某些方法,你使用了一个接口,其中一个例子在下面

public interface GameEngineInterface {
    void init();
    void draw();
    Vector3d annotherMethod(Object object);
}

任何将由您的Game引擎使用的类都将实现GameEngineInterface引擎。

GameEngine方法可以这样工作

public Object someMethod(GameEngineInterface anyObjectThatImplementsGameEngineInterface){
    //method body
}

GameEngine然后不关心煽动方法的细节,只是它可以调用这些方法。

答案 2 :(得分:0)

您似乎需要实施Template Method design pattern。在您的示例中,run将调用draw(),这必须在具体类中实现。