Suppose you have an animal inheritance hierarchy. Animal class at the top, Mammal, Fish etc below that, and species (Dog, Cat, Salmon etc below that). Why would someone declare a class such as:
Animal Rover = new Dog();
rather than
Dog Rover = new Dog();
What are the advantages and disadvantages of doing it this way?