원래 자바에서 오버라이딩의 성립 조건은 리턴타입, 매개변수, 메서드 이름 등 그대로 사용해야 하는데 공변 반환타입 덕분에 리턴 타입을 바꿔 쓸 수 있게 됐다. JDK1.5부터 오버라이딩할 때 부모 메소드의 반환타입을 자식 클래스의 타입으로 변경 가능하다. Object 클래스의 Clone()을 오버라이딩 public Point clone() { //반환타입을 Object에서 Point 변경 Object obj = null; try { obj = super.eat(); } catch(Exception e) {} return (Point)obj; //Point 타입으로 형변환 공변 반환타입을 사용하면 조상의 타입이 아닌, 실제로 반환되는 자손 객체의 타입으로 반환할 수 있어 번거로운 형변환이 줄었다. Poin..