Why do we need virtual interfaces in system verilog?

In reply to ben@SystemVerilog.us:

Hi Ben,

I have just started learning uvm.
Can you tell me what do you mean by this?
virtual interfaces come into play when using classes to defer at a later stage the definition of the physical interface to the one being worked on in the class.