object a = new Dog();
vs
Dog a = new Dog();
In both cases a.GetType() gives Dog. Both
a.GetType()
Dog
This is useful when you want to use polymorphism and you can use the abstract method that has implementation in Dog. Therefore, in this way object is Dog, even so is Object. So you may use this manner when you want to use polymorphism.