Java 5.0은 공분산 반환 유형에 대한 지원을 추가합니다. 즉, 서브 클래스가 재정의 (즉, 재정의) 기본 클래스 메소드가되면 반환 된 유형은 기본 클래스 메소드 리턴 유형의 서브 클래스가 될 수 있습니다. 공분산 반환 유형을 사용하면보다 특정한 유형을 반환 할 수 있습니다.
샘플 프로그램은 다음과 같습니다.
코드 사본은 다음과 같습니다.
import java.io.bytearrayinputstream;
import java.io.inputstream;
클래스베이스
{
// 서브 클래스 degive는이 메소드를 무시하고 리턴 유형을 inputStream의 서브 클래스로 설정합니다.
공개 inputStream getInput ()
{
반환 시스템.
}
}
공개 클래스 파생 확장 기반
{
@보수
Public BytearRayInputStream getInput ()
{
New Bytearrayinputstream을 반환합니다 (New Byte [1024]);
}
public static void main (String [] args)
{
DERIVE D = New DeTive ();
System.out.println (d.getInput (). getClass ());
}
}
/*프로그램 출력 :
클래스 java.io.bytearrayinputstream
*/