Confused virtual method down casting problem

In reply to chr_sue:

In reply to UVM_LOVE:
This is because classes B and C are 2 different types. The extension from class A does not matter.

Thus so I assign b_c = c_h;.
Did I something miss?