One of hundreds of answers available with our premium content service.
A: It may help to discuss an example using birds: an interface called Avian, a superclass FlyingBird that implements Avian and two concrete classes: Parrot and Penguin. Parrot extends FlyingBird, so is implicitly an Avian type, but Penguin does not, it only implements Avian.
… full answer hidden
Premium members click below for full answer
What are the rules for passing subclasses for method arguments?