我有以下代码:
public class Pair< T, U > {
public T first;
public U second;
}
public class Test {
public int method( Pair< Integer, Integer > pair ) {
return 0;
}
public double method( Pair< Double, Double > pair ) {
return 1.0;
}
}
Run Code Online (Sandbox Code Playgroud)
这实际上编译和工作就像人们期望的那样.但是如果返回类型相同,则不会编译,预期的"名称冲突:方法(对)和方法(对)具有相同的擦除"
鉴于返回类型不是方法签名的一部分,这种重载怎么可能?
可能重复:
为什么Java不允许覆盖静态方法?
有没有合理的理由为什么人们希望派生类重写隐藏static基类的方法?