Java 多层次遗传

Java 多层次遗传,java,generics,inheritance,Java,Generics,Inheritance,我有下面的Java类,它具有具有特定类型参数的多级继承。我想在类B中使用类型参数T class B extends C { } class C<T extends D> { } class D { } B类扩展了C类{ } C类{ } D类{ } 但是,他没有编译以下内容: class B extends C { T t; } class C<T extends D> { } class D { } B类扩展了C类{ T; } C类{ } D类{ } 虽然

我有下面的Java类,它具有具有特定类型参数的多级继承。我想在类B中使用类型参数T

class B extends C {
}
class C<T extends D> {
}
class D {
}
B类扩展了C类{
}
C类{
}
D类{
}
但是,他没有编译以下内容:

class B extends C {
    T t;
}
class C<T extends D> {
}
class D {
}
B类扩展了C类{
T;
}
C类{
}
D类{
}

虽然我可以在C类中定义变量t,但这不是一个好的编码实践。我如何定义以下内容(这也不能编译)

B类扩展了C类{
}
谢谢

应该是:

class B<T extends D> extends C<T> {
}
B类扩展了C类{
}

类型参数不会被继承

如果希望类
B
generic,则应指定其自己的类型参数:

class B<T extends D> extends C<T> {
    T t;
    ...
}
B类扩展了C类{
T;
...
}

请注意,您必须再次约束类型参数
T
以使其扩展
D
,因为它在类
C

中以这种方式约束,但这不是一种好的编码实践“0o?为什么?如果我想用这个t来表示B类,但是我得到了C类的另一个子类,那么我需要创建很多变量t,t2,t3。。。在C类中为所有子类。
class B<T extends D> extends C<T> {
    T t;
    ...
}