Java - Covariant Return Type

최대 1 분 소요

Java - Covariant Return Type

  • Covariant Return Type은 “함께 변하는 Return Type”이라고 해석할 수 있습니다.
  • 기존의 java에서는 subClass에서 Method Overriding이 발생할 때, superClass에서의 Method와 Return type은 같아야 했습니다.
class A {
    // A에서 Integer를 리턴하므로
    public Integer get() {};
}
class B extends A {
    // B에서 method를 Override하더라도
    // Integer를 리턴해야 합니다.
    @Override
    public Integer get() {};
}
  • 그러나, java 1.5부터는 이 부분이 유연해졌는데요.
  • A의 method에서 superType을 리턴한다면, B에서 Override하는 method에서는 subType을 리턴해도 된다는 이야기입니다.
  • 만약, A에서 Number를 리턴한다면, B에서는 Integer를 리턴하도록 해도 된다는 이야기죠.
class A {
    // A에서 Integer를 리턴하므로
    public superType get() {};
}
class B extends A {
    // B에서 method를 Override하더라도
    // Integer를 리턴해야 합니다.
    @Override
    public subType get() {};
}

댓글남기기