我有一个扩展 FragmentStatePagerAdapter
的类 CarSettingsAdapter
。
在那个类中,我有一个重写的方法返回 CarSettings 类型的项目
@Override
public CarSettings getItem(int position) {
return carSettingsList.get(position);
}
现在我创建了一个扩展类 CarSettingsAdapter
的新类,但我希望它返回我自己的类型 - 让我们说 MyTypeB
public class NewCarSettings extends CarSettings {
@Override
public MyTypeB getItem(int position) {
return typeBList.get(position);
}
}
我无法重写它,出现编译错误 - 返回类型与 CarSettingsAdapter.getItem(int) 不兼容
。
我想使用 CarSettingsAdapter
的所有逻辑,这就是我扩展它的原因,同时也覆盖了基本方法。我该怎么做?
最佳答案
您可以创建一个使用泛型的中间类。例如CustomSettingsAdapter<T> extends FragmentStatePagerAdapter
.
这样你的getItem()
方法可以返回 T
.
然后将通用逻辑放入该类中并像这样创建新类:
-
CarSettingsAdapter extends CustomSettingsAdapter<CarSettings>
-
NewCarSettingsAdapter extends CustomSettingsAdapter<NewCarSettings>
关于java - 覆盖派生类中已经覆盖的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28352281/