Hola:
Este tipo de retorno, a partir de la versión 1.5 de java, permite cambiar el tipo de valor retornado por un método, que ha sido heredado de una clase, siempre y cuando ese valor retornado derive del tipo de valor devuelto en el método original que estamos sobreescribiendo.
En inglés, pero creo que están bien:
http://blog.loxal.net/2011/08/java-covariant-return-type-demo.html
https://blogs.oracle.com/sundararajan/entry/covariant_return_types_in_java
http://betweengo.com/2008/06/12/covariant-return-types/
http://www.studytonight.com/java/method-overriding-in-java.php
Un saludo
Jose Manuel
=======================
http://www.orbisapientia.com