无论如何我可以做这样的事情:
Class extends <T extends ClassB>
你能否让一个类扩展一个类,只要该类扩展了一般指定的类必须扩展的类?
它的语法/结构是什么?
最佳答案
不,那是不可能的。我认为这也没有多大意义——当您使用泛型并以这种方式指定一个类时,您只能获得来自您指定的类的信息。
对于正常使用(例如容器),这是有道理的,因为它让您可以依赖特定类或接口(interface)的方法,同时能够确保额外的类型安全。然而,对于扩展一个类来说,这并没有多大意义——因为你只能依赖ClassB
的方法,它在功能上等同于只做类扩展 B 类
。
为了使您的想法更有意义,您需要能够获取您定义的类并传入一个类型以“扩展”。然而,这将有许多与多重继承相同的陷阱——如果首先在 Class
中定义的方法也在您传递给泛型的类中定义,但不是在 中,您会怎么做>B 类
?在 Java 中没有多重继承是一个设计决定,而拥有像这样工作的泛型将违背这一点。
简而言之,像这样的东西要么类似于多重继承,要么与普通继承相同。
关于Java 扩展一般指定的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119460/