无论如何,我可以做这样的事情:
Class extends <T extends ClassB>
只要该类扩展了通常指定的类必须扩展的类,您是否可以扩展类?
它的语法/结构是什么?
答案 0 :(得分:3)
不,那是不可能的。我认为这也没有多大意义 - 当您使用泛型并以这种方式指定类时,您只能获得您指定的类中的信息。
对于正常使用(例如容器),这是有道理的,因为它允许您依赖特定的类或接口的方法,同时能够确保额外的类型安全性。但是,对于扩展一个类,这实际上没有多大意义 - 因为你只能依赖ClassB
的方法,它在功能上与仅仅Class extend ClassB
相同
为了让你的想法更有意义,你需要能够获得你定义的类并传入一个类型来“扩展”。但是,这会产生许多与多重继承相同的缺陷 - 如果在Class
中首次定义的方法也在您传递给泛型的类中定义,而不是在ClassB
中,则会怎么做? ?在Java中没有多重继承是一个设计决策,并且具有类似工作的泛型将违背。
简而言之,像这样的东西要么像多重继承,要么与普通继承相同。
答案 1 :(得分:2)
我认为由于类型擦除,你将无法做到这一点。例如,你甚至不能这样做:
class A<T> {
class B extends T {
}
}