Java中的协变返回类型

协变返回类型是指重写方法的返回类型。它允许缩小重写方法的返回类型,而无需强制转换类型或检查返回类型。协变返回类型仅适用于非原始返回类型。

从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