I don't quite get the issue and how it relates to Java?
Typically, all my game objects stem from a GameObject class which has data concerning its state. I usually keep a list of entities (all game objects). Each "update" during the engine's loop the entire entity list is checked. If the entity is alive, it's drawn. If it's dead it can be either drawn in the dead state or removed (deleted) and not drawn at all.
This creates an interesting issue I came across once-- making sure you drawn dead entities "below" the player and alive entities (so the player and entities can 'walk' on dead entities). I solved it by pushing all dead entities to the front of the entity list so they are found and drawn first.