子类定义的通用部分应该是什么

我有一个超类,我不想修改Sort定义中的通用部分

public class Sort<T extends Comparable<? super T>> {
  public abstract void sort(List<T> thingToSort);
}


我想写

public void HeapSort"<>" extends Sort"<>" {

}


在HeapSort定义的通用部分应保留什么

在主要的地方

HeapSort sort = new HeapSort<>(new ArrayList(Arrays.asList(1,2,3,4)));

最佳答案

您只需要将T及其范围传播到扩展类:

public void HeapSort<T extends Comparable<? super T>> extends Sort<T> { ... }


这有效地定义了T上的类型参数HeapSort,用于实例化超类Sort上的类型参数。

然后,您可以像下面这样创建一个新的HeapSort

HeapSort<Integer> sort = new HeapSort<>(Arrays.asList(1,2,3,4));

关于java - 如果父类(super class)具有有限的泛型,那么具体类的泛型应该是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54589861/

10-09 19:45