这是在Java中扩展类的正确方法吗?

时间:2018-11-03 23:01:01

标签: java interface subclass superclass

所以我正在用LWJGL 2制作游戏,我的项目有4个类(Entity,AliveEntity,Player,Tree)。我希望我的实体(例如树木,蕨类植物,某些物品)能够扩展Entity类,玩家希望同时扩展Entity和AliveEntity,以便玩家可以拥有马力,速度,装备等。所以现在看起来像这样:

    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 :(得分:0)

据我所知,扩展时似乎是正确的。每当需要时,我都喜欢以层次结构的方式来考虑它。延伸跟随吗? AliveEntity 都是实体的一部分,播放器 AliveEntity 的一部分>尽管不是 Tree 的一部分,所以它仅扩展到 AliveEntity 。希望这会有所帮助。