Поскольку объект на самом деле является клиентом, он будет работать нормально.Позвольте мне быть более конкретным:
a - это «переменная» типа Person, она может содержать «объект» любого типа от Person до любого из его дочерних классов.
c - это «переменная» типа Clientи может содержать «объект» любого типа от клиента до любого из его дочерних классов.
То, что вы сделали, это поместили «объект» Клиента в «переменную» Персона.Куда бы вы ни переместили этот объект, он всегда будет объектом клиента.Итак, нам нужно иметь в виду, что даже если вы помещаете «объект» Client в «переменную» типа Person, тип объекта все еще остается клиентским.В следующем операторе вы просто переместили объект в его правильный тип.
Переменная похожа на корзину.Он может содержать все, что меньше его.Если вы достанете объект из корзины и поместите его в другую корзину, объект останется прежним.