Ale*_*lue 2 java generics polymorphism inheritance abstract-class
我有很多"形式"类,所有这些都扩展了Form.我有一个名为的抽象类FormService和扩展此类的特定表单服务.我想要做的是调用一个抽象方法populate(),它采用一种形式,从而通过继承为给定类型调用正确的服务.
所以我有类似的东西:
public abstract FormService {
public abstract void populate(Form form);
}
public TestFormService extends FormService {
public void populate(TestForm form) {
//populate
}
Run Code Online (Sandbox Code Playgroud)
哪种TestForm类型延伸Form.这是可能的,因为我似乎无法得到我想要的影响.
你可以使用泛型:
public abstract FormService<F extends Form> {
public abstract void populate(F form);
}
public TestFormService extends FormService<TestForm> {
@Override
public void populate(TestForm form) {
//populate
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,@Override这里的使用只是一个好习惯,但与问题无关.