此代码不编译:无法覆盖的方法,因为名称冲突
import java.util.List;
class A {
void foo(List l) { }
}
class B extends A {
void foo(List<?> l) { }
}
然而,下面的代码编译(在d FOO覆盖FOO中C)。为什么?
class C {
void foo(List<?> l) { }
}
class D extends C {
void foo(List l) { }
}
请发布编译错误 - 它会使问题更容易回答。 –
OK这里是消息:B中的name clash foo(java.util.List >)和A中的foo(java.util.List)具有相同的擦除,但两者都不会覆盖另一个。 – Gmacar