我拥有的内容:
我有一个我想覆盖的通用方法:
class A {}
class B extends A {}
class C {
public <T extends A> void function(T param) { //will be overriden in heirs
//...
}
}
我想要的是什么:
很少有类可以扩展C级和窄参数化。例如:
class D extends C {
@Override
public <T extends B> void function(T param) { //T extends B, not A!! Or even better if it can be only B-class, not heirs
//...
}
}
的问题: 的
我怎样才能实现?
修改 的
C类有很多继承人:D,F,G,H ......这些类中的每一个都有单一的方法f(T param)
。对于每种方法,我需要T
在每种情况下都是Z
类的不同继承人。
所以我决定可以在泛型的帮助下在C级中设置通用API。但如果它不可能,也许是其他方式?
答案 0 :(得分:6)
参数化您的类可能是一个解决方案:
class C<T extends A> {
public void function(T param) {
// ...
}
}
class D<T extends B> extends C<T> {
@Override
public void function(T param) {
// ...
}
}