У меня есть базовый класс под названием 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()
}
}
Итак, как я могу получить метод визуализации(), вызываемого подкласс суперкласса? Я не могу переопределить метод суперкласса, потому что ему нужно выполнить некоторую работу до и после вызова метода подкласса().
Спасибо
Почему это подкласс вообще? Есть ли другой код, который у них есть? Вы не сможете вызвать метод подкласса, не делая экземпляр его в суперклассе. – Zircon
Вам не хватает базового понимания ООП, наследования и классов. Вы должны * вероятно * изучить – Amit
Я думал, что сначала написал ответ, но эта ссылка на Wiki отлично отвечает на ваш вопрос: https://en.wikipedia.org/wiki/Template_method_pattern#Example_in_Java –