Каким должен быть Generic для конкретного класса, если суперкласс имеет ограниченный generic - PullRequest
0 голосов
/ 08 февраля 2019

Какой должна быть общая часть определения подкласса

У меня есть суперкласс. Я не хочу изменять общую часть в определении 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)));

1 Ответ

0 голосов
/ 08 февраля 2019

Вам просто нужно распространить 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...