У меня есть пакет levels
и классы level_default
, level_hard
... каждый из которых имеет некоторые методы, как Load();
, MoveEvent();
, TouchEvent();
...Класс передачи Java как переменный тип?
Я хочу сохранить как-то выбранный класс уровня в переменной с именем позволяет говорить myLevel
Так что тогда я могу использовать, например, myLevel.Load();
, чтобы вызвать метод загрузки с определенного уровня хранения.
До сих пор я использую переключатель петли для вызова требуемого метода из выбранного уровня.
(... case "1": levels.level_default.load(); break; case "2": levels.level_hard.load();
...)
Но как это может быть сделано, как это так, я могу просто выбрать уровень, и использовать его методу без необходимости проверять все время, какой уровень я использую для вызова метод с этого уровня?
Вы можете создать Суперкласс «Уровень» и определить методы в нем. Затем создайте подклассы 'Default',' Hard' ..., которые расширяют 'Level'. Тогда вы можете иметь объект «Level» и инициализировать его как «Level lev = new Hard();» (или «Default», как вы этого хотите). Таким образом, вам просто нужно вызвать метод на 'lev', и он автоматически вызовет необходимые методы из определенного класса. – Hackerdarshi
http://www.oracle.com/technetwork/java/codeconventions-135099.html – Tom
@Hackerdarshi Спасибо, это работает для меня до сих пор! – Vepir