22c - Let composite implement interface IFood to get rid of super(-1)
constructor (code smell)
22d - Let IFood declare isVegetarian to dynamically at runtime find out
if CanOfDogFood composite contains non-vegetarian IFood instances.
21 - Implements/Interface concept supports classes to implement multiple
interfaces.
21c - Design pattern wrapper/adapter to allow (some) instances of type
Mammal to also be Food for Mammals of type Predator