Java 5.0 добавляет поддержку ковариантных типов возврата, то есть при переопределении подклассов (т. Е. Переопределение) методы базового класса, возвращаемый тип может быть подклассом метода базового класса. Ковариантный тип возврата позволяет возвращать более конкретный тип.
Образец программы заключается в следующем:
Кода -копия выглядит следующим образом:
импортировать java.io.bytearrayinputstream;
импортировать java.io.inputstream;
классная база
{
// subclass derive переопределяет этот метод и установит тип возврата на подкласс InputStream
public inputstream getInput ()
{
return System.in;
}
}
Общедоступный класс Defers расширяет базу
{
@Override
public Bytearrayinptstream getInput ()
{
вернуть новый BytearrayinputStream (новый байт [1024]);
}
Public Static Void Main (String [] args)
{
Def d = new derive ();
System.out.println (d.getInput (). GetClass ());
}
}
/*Вывод программы:
класс java.io.bytearrayinputstream
*/