공변 반환 형식은 재정의 메서드의 반환 형식을 나타냅니다. 유형을 캐스팅하거나 반환 유형을 확인할 필요 없이 재정의된 메서드의 반환 유형을 좁힐 수 있습니다. 공변 반환 유형은 기본이 아닌 반환 유형에만 작동합니다.
Java 5부터는 반환 유형이 재정의된 메서드 반환 유형의 하위 클래스라는 조건을 준수해야만 반환 유형을 변경하여 메서드를 재정의할 수 있습니다.
다음 예는 동일한 것을 보여줍니다.
예시
class SuperClass { SuperClass get() { System.out.println("SuperClass"); return this; } } public class Tester extends SuperClass { Tester get() { System.out.println("SubClass"); return this; } public static void main(String[] args) { SuperClass tester = new Tester(); tester.get(); } }
출력
Subclass