Edw*_*rzo 8

对于原始类型,它是不可能的,但JDK 1.5中添加了一个称为协变返回类型的功能.因此,使用此功能,子类可以返回比父类声明的类型更具体的类型.

以下代码在JDK 1.7中编译良好

public static class A {
   Number go() { return 0; };
}

public static class B extends A {
  @Override
  Integer go() { return 0; }
}
Run Code Online (Sandbox Code Playgroud)

参见JLS例8.4.8.3-1.协变返回类型