Worked example
static void announce(Animal a) {
System.out.println("Meet: " + a.describe());
}
announce(new Dog("Rex")); // Meet: Rex is a dog
announce(new Cat("Felix")); // Meet: Felix is a cat
announce takes an Animal, so it accepts a Dog, a Cat, or any other Animal — each described in its own way.