是)我有的:
我有一个我想覆盖的通用方法:
class A {}
class B extends A {}
class C {
public <T extends A> void function(T param) { //will be overriden in heirs
//...
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
将会有很少的类扩展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
//...
}
}
Run Code Online (Sandbox Code Playgroud)
题:
我怎么能做到这一点?
编辑:
C类有许多继承人:D,F,G,H ......这些类中的每一个都有单一的方法f(T param).对于每种方法,我需要在每种情况下T都是不同的Z类继承人.
所以我决定我可以在泛型的帮助下在C级中设置通用API.但如果它不可能,也许是其他方式?
参数化您的类可能是一个解决方案:
class C<T extends A> {
public void function(T param) {
// ...
}
}
class D<T extends B> extends C<T> {
@Override
public void function(T param) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)