Tem um paragrafo que diz: qualquer valor ou variavel que possa ser implicitamente convertido no tipo de retorno declarado. portanto, por ex: short pode ser retornado quando o tipo de retorno declarado for um int.
MAS, isso não funcionou, pq?
class Parent {
public int x() { return Integer.MAX_VALUE; }
}
class Child extends Parent {
public short x() { return Short.MAX_VALUE; } //ERRO DE COMPILACAO!!
}