How to factory register class properties, and its real purpose?

In reply to chr_sue:

What is the need of registering field using this construct??

uvm_component_utils_begin(TYPE) uvm_field_* macro invocations here
`uvm_component_utils_end

By this can we override the field variables?