这是在 java 中扩展 类 的正确方法吗?
Is this proper way of extending classes in java?
所以我在 LWJGL 2 中制作游戏,我的项目有 4 个 classes (Entity,AliveEntity,Player,Tree)。我希望我的实体(例如树、蕨类植物、一些物品)扩展实体 class 并且玩家同时扩展实体和 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
}
我的做法对吗?如果不是,那么你能告诉我最好的方法是什么吗?我考虑过接口,但我不是它们的忠实粉丝...
据我所知,这在扩展时似乎是正确的。当我需要的时候,我喜欢以层次结构的方式来考虑它。延伸是否跟随它? Tree 和 AliveEntity 都是 Entity 的一部分,Player ] 是 AliveEntity 的一部分,但不是 Tree 的一部分,因此它只扩展到 AliveEntity 。希望这有帮助。
所以我在 LWJGL 2 中制作游戏,我的项目有 4 个 classes (Entity,AliveEntity,Player,Tree)。我希望我的实体(例如树、蕨类植物、一些物品)扩展实体 class 并且玩家同时扩展实体和 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
}
我的做法对吗?如果不是,那么你能告诉我最好的方法是什么吗?我考虑过接口,但我不是它们的忠实粉丝...
据我所知,这在扩展时似乎是正确的。当我需要的时候,我喜欢以层次结构的方式来考虑它。延伸是否跟随它? Tree 和 AliveEntity 都是 Entity 的一部分,Player ] 是 AliveEntity 的一部分,但不是 Tree 的一部分,因此它只扩展到 AliveEntity 。希望这有帮助。