I have a generic class
If your method returns
A<String> it can be an object of type
B but it does not have to be!
If you have a superclass of type
BMW extends car.
Consider a factory that creates a car. The method returns car - this can be a BMW but it does not have to be a BMW.