【发布时间】:2017-10-21 05:15:08
【问题描述】:
我完全明白这个问题Method has the same erasure as another method in type 及其答案。请任何人帮助我理解以下内容?
努力消化,为什么下面的第二个代码sn-p会出现编译错误?
代码 1:编译良好p>
class Parent {
public void set(Collection<Integer> c) { }
}
class Child extends Parent {
public void set(Collection<Integer> c) {}
}
代码 2:子类中 set 方法的编译器错误。
class Parent {
public void set(Collection<?> c) { }
}
class Child extends Parent {
public void set(Collection<Integer> c) {}
}
编译器错误是
名称冲突: Child 类型的方法 set(Collection) 与 set(Collection) 的擦除相同 输入 Parent 但不覆盖它
【问题讨论】:
-
是因为父母可以为空,而您的孩子不能吗?
标签: java generics overriding