Confusing implementation of scoreboard

In reply to chr_sue:

In reply to UVM_LOVE:
You have 2 questions:
(1) why do we need to do the cast
(2) Why do we use virtual methods.
Answers:
(1) as shown in your comment. The method clone returns as type uvm_object. But we need exam_packet. For this reason we are doing this so-called type cast using the sytem function $cast.
(2) A non-virtual method (function/task) fix the method to the class object when constructed. Virtual method functionality is set at run‐time, which allows extended class handles to be assigned to base class handles and run‐time method calls using the base class handle will execute the extended class method functionality (polymorphism).
BTW you should use in your scorboard uvm_tlm_analysis_fifo instead of queues.

Sir Thanks for letting me know that.
Sir Could you give me any information why I should use uvm_tlm_analysis_fifo instead of queues?