Я хочу изменить класс DefaultDisplay
графического интерфейса GridWorld, чтобы я мог изменить изображение актера во время прогона, и, поскольку я использую файл jar кода, я создаю подкласс CustomDisplay
из DefaultDisplay
.
Однако, поскольку создание подкласса изменит имя, мне придется создать подклассы классов, использующих DefaultDisplay
, чтобы они были обновлены для использования CustomDisplay
вместо DefaultDisplay
. Например, мне пришлось бы создать подкласс DisplayMap
с именем CustomMap
, который вместо этого:
private Display defaultDisplay = new DefaultDisplay();
сказал это:
private Display customDisplay = new CustomDisplay();
и тогда любой другой класс, который использовал DisplayMap
, должен был быть изменен, чтобы использовать CustomMap
. Кажется очень неэффективным создавать подклассы всех этих классов только потому, что они используют классы, которые я изменяю.
Можно ли сделать так, чтобы CustomDisplay
автоматически использовалось вместо DefaultDisplay
, поэтому мне нужно изменить только один класс?
Примечания
- Классы, о которых я говорю, не включены в обычный javadoc, но их можно найти здесь.
- Я проверил Extending GridWorld и нашел много информации, но ничего, что могло бы помогите с этим.
CustomDisplay
класс IS-ADefaultDisplay
, и, таким образом, ни один из других классов не должен знать, что вы создали его подкласс. Таким образом, нет необходимости создавать подклассы любого другого класса. - person Tom G   schedule 30.01.2013DefaultDisplay
. - person Andrew Thompson   schedule 30.01.2013