O Java 5.0 adiciona suporte para os tipos de retorno covariante, ou seja, quando as subclasses substituem os métodos de classe base (isto é, substituição), o tipo retornado pode ser uma subclasse do tipo de retorno do método da classe base. O tipo de retorno covariante permite que um tipo mais específico seja retornado.
O programa de amostra é o seguinte:
A cópia do código é a seguinte:
importar java.io.byteArrayInputStream;
importar java.io.inputStream;
base de classe
{
// A subclasse deriva substituirá esse método e definirá o tipo de retorno como uma subclasse do InputStream
Public inputStream getInput ()
{
retorno System.in;
}
}
Classe pública Derive Base Extende
{
@Override
public byteArrayInputStream getInput ()
{
devolver novos bytearrayInputStream (novo byte [1024]);
}
public static void main (string [] args)
{
Deriva d = new deriv ();
System.out.println (d.getInput (). GetClass ());
}
}
/*Saída do programa:
Classe java.io.byteArrayinputStream
*/