В последнее время я решил взглянуть на Java, поэтому я все еще довольно новичок в этом, а также подход к программированию OO, поэтому я хотел получить некоторые вещи прямо перед тем, как узнать больше (я думаю, это никогда не скоро начнется с хорошей практикой).
Я программирую немного 2D-игры, но думаю, что мой вопрос относится к любому нетривиальному проекту. Для простоты я приведу примеры из своей игры.
У меня разные виды зомби, но все они имеют одинаковые атрибуты (x, y, health, attack и т.д.), поэтому я написал интерфейс Zombie, который я реализую WalkingZombie, RunningZombie TeleportingZombie и т.д. Это лучшее, что нужно сделать? Я лучше с абстрактным классом? Или с супер классом? (Я не планирую частично реализовывать функции - поэтому мой выбор для интерфейса вместо абстрактного класса)
У меня есть один класс, описывающий главного героя (Survivor), и поскольку он довольно большой, мне хотелось написать интерфейс с различными функциями, чтобы я мог легко видеть и делиться его структурой. Это хорошая практика? Или это просто пустая трата пространства и времени?
Надеюсь, этот вопрос не будет оценен как субъективный, поскольку я думал, что опытные программисты не будут не соглашаться на эту тему, поскольку использование интерфейсов/суперклассов/абстрактных классов следует логическим правилам и, следовательно, не просто личный выбор.