In my Java book it says:
"If we pass a Collection<Shape> below, the code works. However, what happens if we pass a Collection<Square>? The answer depends on whether a Collection<Square> IS-A Collection<Shape>. Recall that the technical term for this is whether we have covariance."
What do they mean by "IS-A" and what do they mean by covariance? Is covariance just whether or not Square inherits from Shape?
public static double totalArea( Collection<Shape> arr )