Java 多层次遗传
我有下面的Java类,它具有具有特定类型参数的多级继承。我想在类B中使用类型参数TJava 多层次遗传,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类{ } 虽然
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;
...
}