Java keeps runtime type information (RTTI). This means that even if you hold a reference to a base class object the sub-class's method will be called(if the method is overriden by the subclass). So you don't have to do anything so as the subclass method to be called.
public class SubRenderPanel extends RenderPanel{
@Override
public abstract void render()
{
//Do your stuff here
}
}
public class Window implements Runnable{
RenderPanel r = new SubRenderPanel();
public void run(){
while(running){
r.render();
Thread.sleep(5000);
}
}
}