Regarding my comment,
Does each class that holds a Renderable have a public Renderable getRenderable() method? And if so, couldn't this be made into an interface allowing you to hold a collection of these beasts?
I was meaning something like this:
interface Renderable {
void render();
}
interface RenderDelegator {
Renderable getRenderable();
void setRenderable(Renderable renderable);
}
abstract class Vehicle implements RenderDelegator {
private Renderable renderable;
@Override
public Renderable getRenderable() {
return renderable;
}
@Override
public void setRenderable(Renderable renderable) {
this.renderable = renderable;
}
public abstract void drive();
}
class Car extends Vehicle {
@Override
public void drive() {
// TODO finish!
}
}
And nix that suggestion about implementing Iterable. I'm not sure what I was thinking.