Adding to what Kevin said. Here is the most common advantage, in my experience.
Let's say we had the DogInterface, and then two classes which implement the DogInterface: Dog and Puppy.
Declaring a...