The UVM class library is mostly composed of virtual classes with virtual methods. When overriding a virtual method, SystemVerilog, requires the use of the exact same method prototype, which requires verification engineers to do upcasting and downcasting. This session shows how upcasting and downcasting work and how they are frequently used in UVM testbench environments.