Factory objects and components are virtual?

I am new to sv/uvm. my question may be basic.
what is a virtual class and advantages of virtual/abstract class ?
what about virtual methods?

in UVM , Factory components and objects are virtual?

In reply to chaitanya_i:
Please see my short course on SystemVerilog OOP for UVM where I describe this in detail.