Java 几个类是否可以共享一个接口实现?

Java 几个类是否可以共享一个接口实现?,java,interface,abstract,Java,Interface,Abstract,我有许多已经实现的java类。我想为这些类添加一些行为;在某些情况下,所有类的这种行为可能是相同的。还假设我不能创建一个超级类,因为所有的类都已经实现了 我的问题是在这方面我有什么选择 接口:对于某些接口,我是否可以实现它们一次,并让类共享单个实现(因为在某些情况下,所有类所需的实现都是相同的)。这将避免在所有类中手动复制代码 我考虑定义一个抽象类,并让这些类扩展抽象类;问题是,在这种情况下,子类不会是抽象类的有意义的扩展,因为它们不会形成有意义的层次结构 谢谢。如果接口方法的实现不依赖于实现类

我有许多已经实现的java类。我想为这些类添加一些行为;在某些情况下,所有类的这种行为可能是相同的。还假设我不能创建一个超级类,因为所有的类都已经实现了

我的问题是在这方面我有什么选择

接口:对于某些接口,我是否可以实现它们一次,并让类共享单个实现(因为在某些情况下,所有类所需的实现都是相同的)。这将避免在所有类中手动复制代码

我考虑定义一个抽象类,并让这些类扩展抽象类;问题是,在这种情况下,子类不会是抽象类的有意义的扩展,因为它们不会形成有意义的层次结构


谢谢。

如果接口方法的实现不依赖于实现类的成员,并且您使用的是Java 8,则可以为接口的方法提供默认实现。

您可以使用“委派”模式。使用定义要添加的行为的方法(一个或多个方法)和行为的每个变体的实现类定义新接口。让您现有的每个类都引用它所需要的实现类的实例。
“委派模式”的wikipedia页面有一些Java和其他语言的简单示例:

好吧,您可以编写一个类来实现该行为,然后将该类作为每个类的私有成员,并将接口方法委派给该类。在Java中,这必须手动完成(您只需要让封闭类调用私有类)。一些IDE将为您编写此委派代码。谢谢。我认为授权模式可以胜任这项工作。