object a = new Dog();
и
Dog a = new Dog();
В обоих случаях a.GetType () дает Dog . Оба вызывают один и тот же конструктор (с одинаковой иерархией).
a.GetType ()
Dog
Тогда не могли бы вы рассказать мне разницу между этими двумя утверждениями?