泛型类型有问题-Java

泛型类型有问题-Java,java,class,generics,subclass,Java,Class,Generics,Subclass,我有三个类都使用泛型类型: public class Animal implements Comparable<Animal> public class Sequence<T extends Comparable<T>> implements Iterable<T> public class Zoo<T extends Animal> extends Sequence<T> 公共类动物工具 公共类序列实现了Iterab

我有三个类都使用泛型类型:

public class Animal implements Comparable<Animal>

public class Sequence<T extends Comparable<T>> implements Iterable<T>

public class Zoo<T extends Animal> extends Sequence<T>
公共类动物工具
公共类序列实现了Iterable
公共类序列
所以我的思维过程是这样的:
Animal
compariable
的一个亚型。
序列
中的泛型子类型T也是
可比
的一个子类型。因此,当我创建一个
Sequence
类型的对象时,它工作得非常好。但是现在我创建了一个类
Zoo
。我希望
Zoo
Sequence
相同,只是泛型T应限于动物(并且只能接受一个固定的动物亚型,即动物)。所以我做了
Zoo
extend
Sequence
,用T扩展
Animal
。我认为它应该可以工作,因为
Animal
Comparable
的子类型,但编译器给了我一个错误:

T不在其范围内;应实施可比的

但是T已经是可比的了,因为它是动物的一个亚型,不是吗?
有人能解释一下发生了什么,或者我如何实现我想要做的事情吗?

更改
序列的类型变量的界限:

public class Sequence<T extends Comparable<? super T>>
public class Zoo extends Sequence<Animal>