Java 泛型 - 方法重写
我有一对类A和ClassB,如下所示。
案例1:
class ClassA<T extends Number>{
void method(T t){}
}
class ClassB extends ClassA<Integer>{
@Override
void method(Integer i){}
}
案例2:
class ClassA{
void method(Number t){}
}
class ClassB extends ClassA{
@Override
void method(Integer i){}
}
我这里有两个问题。
[q1] 如果我这么说,case2 是 case1 的运行时表示形式(在类型擦除之后),我说得对吗?
[q2]如果我对 [q1] 的看法是正确的,那么为什么 case1 被接受为有效的覆盖?(我知道为什么case2不是一个有效的覆盖,因为参数不相同。
有人请对此有所了解。提前致谢。