子类定义的通用部分应该是什么
我有一个超类,我不想修改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)));
答案 0 :(得分:1)
您只需要将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));