我有一条类似的线路来挖掘一个开源项目:
abstract class AbstractClass<A extends ParentClass1,
B extends ParentClass2>
你能告诉我这实际上是什么意思吗?我认为java不支持多重继承,那么我们实际上在这里做什么?什么是A
和B
这里?:S
我有一条类似的线路来挖掘一个开源项目:
abstract class AbstractClass<A extends ParentClass1,
B extends ParentClass2>
你能告诉我这实际上是什么意思吗?我认为java不支持多重继承,那么我们实际上在这里做什么?什么是A
和B
这里?:S
这里A 和 B 只是占位符,可以分别替换为任何扩展 ParentClass1 和 ParentClass2 的类。创建此类的对象时,您可以在角括号(<>)中传递参数。这些参数将在编译期间由编译器替换 A 和 B。
上面的代码并不表示多重继承。请详细阅读泛型以了解这一点。
如果您删除其中的内容<>
,那么您只会看到它
abstract class AbstractClass
这意味着,该类根本没有扩展任何类。
abstract class AbstractClass<A extends ParentClass1,
B extends ParentClass2>
本质上意味着,该类想要声明 2 个泛型 A 和 B,并强制其类型。这意味着,它希望类的实现者提供分别扩展ParentClass1
和扩展的 2 个类ParentClass2
。
请参阅此以获得更多说明