Это правильный способ расширения классов в Java? - PullRequest
0 голосов
/ 04 ноября 2018

Итак, я делаю игру в LWJGL 2, и мой проект состоит из 4 классов (Entity, AliveEntity, Player, Tree). Я хочу, чтобы мои сущности (например, деревья, папоротники, некоторые предметы) расширяли класс сущностей, а игрок одновременно расширял сущность и AliveEntity, чтобы у игрока было hp, скорость, экипировка и т. Д. Итак, теперь это выглядит так:

    public class Entity{

            public Entity(){ }

    public void methodForEveryEntity(){ }
    }


    public class AliveEntity extends Entity{

       public AliveEntity(){ super(); }

    public void methodForOnlyLivingEntities(){ }
    }


    public class Player extends AliveEntity{

       public Player(){ super(); }

        //it can use methods from AliveEntity and Entity classes
    }


    public class Tree extends Entity{

       public Tree(){ super(); }

        //only methods from Entity class
    }

Правильный ли мой подход? Если нет, то можете ли вы сказать мне, как лучше всего это сделать? Я думал об интерфейсах, но я не большой их поклонник ...

1 Ответ

0 голосов
/ 04 ноября 2018

Насколько мне известно, это кажется правильным при расширении. Когда мне нужно, мне нравится думать об этом в манере иерархии. За этим следует расширение? И Дерево и AliveEntity являются частью Entity , а Player является частью AliveEntity , но не является частью Дерево , следовательно, оно распространяется только на AliveEntity . Надеюсь, это поможет.

...