仅接受部分类的泛型方法

2022-09-02 04:56:09

假设我有以下类结构:

class Base {}
class A extends Base {}
class B extends Base {}
class C extends Base {}

我想编写方法,它接受AB的实例,但不接受C的实例。
我可以在Java中实现它吗?

我知道这不是很好的继承情况(AB应该有与C不同的共同父级),但我唯一好奇的是用Java的方式来处理这样的情况。

编辑:
!!!
我知道更好的继承会解决问题。我只是好奇,如果Java有一些标准机制来解决这样的问题。
!!!


答案 1

使用接口,并且只有并实现它。AB


答案 2

可以使用接口吗?例如:

class Base {}
interface MyGenericInterface {}
class A extends Base implements MyGenericInterface {}
class B extends Base implements MyGenericInterface {}
class C extends Base {}

这样,该方法可以接受 MyGenericInterface 的实现,并且由于 A 和 B 实现了接口,但 C 没有,因此它将根据需要接受 A 和 B 的实例,但不接受 C 的实例。


推荐