Там нет преобразования - ваш объект Cat
и всегда будет Cat
- только переменная указана как Animal
, а не сам объект.
Конверсия - это когда вы берете объект Cat
, что-то с ним делаете, и вдруг у вас появляется другой объект типа Animal
. В этой ситуации не имеет смысла.
При работе со структурами преобразования имеют больше смысла. Integer
5 можно преобразовать в Decimal
5 м, и это два совершенно разных объекта.
код:
int i = 5;
decimal d = i;
будет неявным преобразованием, потому что 5 - это System.Int32
, но оно преобразуется в 5m, что является System.Decimal
, и это совершенно другой объект, чем оригинал.