多级继承

Multiple Level of Inheritance

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

class B extends C {
}
class C<T extends D> {
}
class D {
}

然而,他下面的代码没有编译:

class B extends C {
    T t;
}
class C<T extends D> {
}
class D {
}

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

class B extends C<T extends D> {
}

谢谢!

应该是:

class B<T extends D> extends C<T> {
}

类型参数不被继承!

如果你想让你的 class B 泛型,你应该指定它自己的类型参数:

class B<T extends D> extends C<T> {
    T t;
    ...
}

请注意,您必须再次约束类型参数 T 以使其扩展 D,因为它在 class C.[=15= 中以这种方式受到约束]