所以我想制作一个游戏引擎,我立即意识到这些东西必须“自动导入”。例如,当您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);
}
}
使用评论,我将如何使其发挥作用?
感谢您的帮助,如果这不是最好的话,我道歉......
答案 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()
,这必须在具体类中实现。