私はGameEngineと呼ばれる基本クラスを持っています。これは私の "ゲームエンジン"の "コア"であるはずです。すべてのグラフィック処理と物理ダニを行います。しかし、私はこのクラスのゲームのための私の実際のソースコードを入れたくありません。だから、これは私が持っているもの、本質的である:Java - サブクラスのメソッドを呼び出す(終了メソッドの前にプロセス 'ユーザコード')?
//GameEngine
void start() {
//While loop to call render() and tick()
}
void render() {
//BufferStrategy, etc.
//[[[[HERE]]]] Call method on subclass
//dispose() and show()
}
void tick() { }
と...だから
//SampleGame
public class SampleGame extends GameEngine {
public static void main(String[] args) {
new GameEngine().start();
}
public void render() {
//This gets called before dispose() and show()
}
}
、どのように私はrender()メソッドは、スーパークラスでサブクラスで呼ばれるように得ることができますか?スーパークラスメソッドをオーバーライドすることはできません。なぜなら、サブクラスのrender()メソッドが呼び出される前後にいくつかの作業を行う必要があるからです。
ありがとう
なぜそれがすべてのサブクラスのですか? 2つのコードを共有している他のコードはありますか?スーパークラスにそのインスタンスを作成せずにサブクラスのメソッドを呼び出すことはできません。 – Zircon
OOP、継承、クラスの基本的な理解は欠けているようです。あなたは*おそらく*研究する必要があります – Amit
私は最初に答えを書くことを考えましたが、このWikiリンクはあなたの質問に完全に答えます:https://en.wikipedia.org/wiki/Template_method_pattern#Example_in_Java –