Regarding Method Overriding / Polymorphism SystemVerilog

In reply to ziggy:

$cast does not create or copy objects; it tries to copy a handle from one class variable to another. Please see my course on SystemVerilog OOP, especially the second session.