2

我有一条类似的线路来挖掘一个开源项目:

abstract class AbstractClass<A extends ParentClass1,
    B extends ParentClass2>

你能告诉我这实际上是什么意思吗?我认为java不支持多重继承,那么我们实际上在这里做什么?什么是AB这里?:S

4

3 回答 3

1

这里A 和 B 只是占位符,可以分别替换为任何扩展 ParentClass1 和 ParentClass2 的类。创建此类的对象时,您可以在角括号(<>)中传递参数。这些参数将在编译期间由编译器替换 A 和 B。

上面的代码并不表示多重继承。请详细阅读泛型以了解这一点。

于 2013-04-07T06:32:38.327 回答
0

它的泛型类型在这里寻找泛型:http ://docs.oracle.com/javase/tutorial/java/generics/types.html

于 2013-04-07T06:32:39.023 回答
0

如果您删除其中的内容<>,那么您只会看到它

abstract class AbstractClass

这意味着,该类根本没有扩展任何类。

abstract class AbstractClass<A extends ParentClass1,
    B extends ParentClass2>

本质上意味着,该类想要声明 2 个泛型 A 和 B,并强制其类型。这意味着,它希望类的实现者提供分别扩展ParentClass1和扩展的 2 个类ParentClass2

请参阅以获得更多说明

于 2013-04-07T06:38:14.123 回答