You're going to want to have an array which stores every instance of Sprite, including any instance which inherits Sprite.
In the game loop, you're going to want to loop through the array executing Update of every instance, then again doing the draw functions.
Each object would inherit Sprite's drawing and update functions, overloading when necessary and from there all you need to do is fill in the blanks for each object.
I'm not experienced with java, but here's some example JavaScript. So, for example I have a state machine and I'm viewing the game, every update of that state we'll call this function. currentstate.draw would then draw all the map objects by running the following function.
Code:
function mapobject_draw(visuals)
{
for(i=0; i<mapobjectArray.length;i++)
{
mapobjectArray[i].draw(visuals);
}
}
I hope that helps.