Confused between $cast and factory override

In reply to Desam:

In reply to UVM_LOVE:
I did see below results from eda playground:
with type override: agent_a::type_id::set_type_override(agent_b::get_type()); //enabling

casts = 1 1 1

without type override: // agent_a::type_id::set_type_override(agent_b::get_type()); //commented it out

casts = 1 0 0

i did see expected results here…

Yes. I got the same result.
Could you let me know Handle type and Object Type from the below?

agent_a agent_a_h;
uvm_agent temp;
agent_b agent_b_h;
agent_a agent_a_h_2;

I think there is no Objection Type.

Handle Types are

agent_a ;
uvm_agent ;
agent_b ;
agent_a ;

Am I right?