此代码无法编译:
import java.util.List;
class A {
void foo(List l) { }
}
class B extends A {
void foo(List<?> l) { }
}
但是,下面的代码编译(D中的foo覆盖C中的foo)。为什么呢?
class C {
void foo(List<?> l) { }
}
class D extends C {
void foo(List l) { }
}
答案 0 :(得分:2)
第二个例子编译因为List&lt;&gt;派生自List,但不是另一种方式,这就是为什么第一个例子不能编译。