О, я узнал, что есть столкновение имен:
Метод compareTo (IClient) типа Client имеет такое же стирание, что и CompareTo (IClient) типа IClient, но не переопределяет его.
IClient является необработанным типом. Ссылки на универсальный тип IClient должны быть параметризованы
class Client<T> implements IClient<T>
это исправит.