如下图所示:
要覆盖的方法:
double add (int a ,int b){
}
方法覆盖上述方法:
int add(int a,int b){
}
答案 0 :(得分:8)
对于原始类型,它是不可能的,但JDK 1.5中添加了一个名为covariant return types的功能。因此,使用此功能,子类可以返回比父类声明的类型更具体的类型。
以下代码在JDK 1.7中编译良好 p>
public static class A {
Number go() { return 0; };
}
public static class B extends A {
@Override
Integer go() { return 0; }
}
答案 1 :(得分:2)
不,您无法更改返回类型。您可以通过提供备用或附加输入来重载方法。
即
int add(int a, int b, int c)
答案 2 :(得分:1)
另一个解决方案是使基类型成为参数化类型,并在扩展或实例化时断言返回类型。