如下所示 :
要覆盖的方法:
double add (int a ,int b){
}
覆盖上述方法的方法:
int add(int a,int b){
}
解决方法:
使用原始类型是不可能的,但JDK 1.5中添加了一个名为covariant return types的功能.因此,使用此功能,子类可以返回比父类声明的类型更具体的类型.
以下代码在JDK 1.7中编译良好
public static class A {
Number go() { return 0; };
}
public static class B extends A {
@Override
Integer go() { return 0; }
}
见JLS Example 8.4.8.3-1. Covariant Return Types