Java 5.0 agrega soporte para los tipos de retorno covariant, es decir, cuando las subclases anulan (es decir, anular) métodos de clase base, el tipo devuelto puede ser una subclase del tipo de retorno del método de clase base. El tipo de retorno covariante permite devolver un tipo más específico.
El programa de muestra es el siguiente:
La copia del código es la siguiente:
import java.io.bytearrayInputStream;
import java.io.inputstream;
base de clases
{
// La subclase Derive anulará este método y establecerá el tipo de retorno en una subclase de InputStream
Public InputStream getInput ()
{
return System.in;
}
}
La clase pública Derive extiende la base
{
@Anular
Public bytearrayInputStream getInput ()
{
devolver nuevo bytearrayInputStream (nuevo byte [1024]);
}
Public static void main (String [] args)
{
Derivar d = nuevo derive ();
System.out.println (d.getInput (). GetClass ());
}
}
/*Salida del programa:
clase java.io.bytearrayinputstream
*/