Create and get_type_name methods in uvm_object

In the description of uvm_object class, it is mentioned that ‘create’ and ‘get_type_name’ methods are pure virtual. However they are declared as virtual methods. Are these methods supposed to be pure virtual?

In reply to Naveenkb:

Where did you see these methods are pure virtual? Neither the code, nor the LRM mentions this. They do behavior similar to a pure virtual method in that you must override them before you can use them. However, if you don’t register the class with the factory using the `umm_object_utils macro, these methods do not get overridden, but you can still construct your class.