Since Java 5 we are allowed to have covariant return types. Why doesn\'t the Java API take advantage of this?
Take Graphics2D.create() for instance. Why
Graphics2D.create()
That would break binary compatibility. Previously compiled classes cannot find the method with the new return type. JLS3 §13.4.15, §13.4.12