最新在抽取公共方法的时候,遇到了需要使用泛型的情况,但是在搜索了一圈之后,发现大部分博客对于继承都说的不太清楚,所幸还有那么一两篇讲的清楚的,在这里自己标记下。
以我自己用到的代码举例,在父类中使用了泛型的声明,代码如下:
public abstract class AlarmRender {
/**
* @param serviceDataList serviceDataList
* @param renderParameter renderParameter
* @return list
*/
public abstract List renderServiceAlarm(List serviceDataList, AlarmRenderParameter renderParameter);
}
这一块大部分博客都写的大同小异,没有啥区别,但是在继承中有一点需要注意的,大部分博客都没有提到;
子类在继承有泛型的父类时有两种情况,1.继承时,子类继续保持泛型化;2.继承时,子类不再泛型化
子类保持泛型化这里不多讲,大部分博客都说了这种情况,我遇到的是需要子类不再泛型化,每个子类有自己的类型,使用时也很简单,将具体类型声明清楚即可,但是大部分博客没有讲清楚这两点,代码如下:
public class ObsAlarmRender extends AlarmRender {
@Override
public List renderServiceAlarm(List serviceDataList, AlarmRenderParameter renderParameter) {
//业务代码
}
}