【发布时间】:2015-12-10 11:23:37
【问题描述】:
假设我有一堂课
abstract class A {
ArrayList<?> l;
public void setList(ArrayList<?> l) //set the list
}
有没有可能做类似的事情
class B extends A {
public void setList(ArrayList<? extends Foo> l) //Set the list }
我基本上想指定一个带有参数化字段的抽象类,其中从第一个类继承的类可以更具体地指定字段的类型,以便它必须扩展一些其他类型。
【问题讨论】:
-
没有。因为它必须接受所有可以传递给
new A().setList()的参数。 -
我想用你的方式做同样的事情是不行的
-
没有。它将被视为重载,并隐藏基类方法。不作为替代。
-
@EJP 不会重载也不会隐藏,会因为名字冲突导致编译时错误。
标签: java generics inheritance polymorphism overriding