This means that it will only allow you to add objects that IS-A Apple, IS-A Macintosh, IS-A GrannySmith, and IS-A anything else that IS-A Apple.
Does this mean...
This means that it will only allow you to add objects that IS-A Apple, AND
IS-A Macintosh, AND
IS-A GrannySmith, AND
IS-A anything else that IS-A Apple?
Given the current code no class meets that criteria, is that how you got to...
The only possible item that can be added, because it can be assigned to all of those reference types, is null.
If I'm following you then I would need to generalize the method's add to accept any Type that is allowed. I changed the method to this