In reply to verif_25:
Here is another page explaining the same concepts.
The bind construct is used to insert a "probe" into the a sub-module of your DUT without having to make hierarchical reference crossing module boundaries.
The abstract/concrete class mechanism is an alternative to using virtual interfaces and is a separate concept from the bind construct. One advantage of the abstract class mechanism over the virtual interface mechanism is that it decouples parameterization of the actual interface to just the parameters (if any) required by the abstract class.
But use whichever mechanism is clear for you to understand.