java - 在java中如何扩展接口(interface)的实现?

标签 java inheritance implementation

我有一个接口(interface),有人答应我提供它的实现。

我现在必须设计一个类 s.t 我可以扩展“某人的”实现。但是我不知道该实现的名称。

例如。

interface X{ void methodA(int); int methodB();} 

class A implements X { /*impl code here*/}

现在,我不知道哪个类将实现 X。但我想将这些实现合并到我的代码中

class B extends <Anyclass that implements interface X>
{/*other impl here*/}

我该怎么做呢?我知道在泛型中你可以在使用 Comparator 时指定。我想知道这个案例有没有什么可用的?

最佳答案

所以您想要一个 X 的实例,它具有与您在运行时获得的类相同的接口(interface),但允许您指定 X 的某些方法的行为方式?

如果你在运行时有一个 A 的实例,你可以使用 proxy classes创建一个实现该类实现的所有接口(interface)的对象,包括 X,并重写 X 的一些方法来执行您想要的操作,并将其余部分委托(delegate)给实例。

代理类在效率方面不是很好,它们提供的那种动态通常更容易通过更正常的方式实现,所以不要过度使用它们,但你需要在两个部分之间的边界处使用一些灵活的胶水一个系统,他们真的可以提供帮助。

另请注意,生成的对象不是 A,它只是实现了与 A 相同的接口(interface)。

关于java - 在java中如何扩展接口(interface)的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158809/

相关文章:

java - 使用 BigInteger 的求和和乘法

java - 指纹图像二值化

java - 捕获 OutOfMemoryError 是个坏主意吗?

c++ - 选择要覆盖哪个基类的方法

c# - 从父类调用重写的虚方法

algorithm - 使用有限状态机是否是一般文本解析的良好设计?

java - Java 中 goto 语句的替代方案

ios - Swift 符合协议(protocol)子类

c - 类似于 strstr 的高效版本

android - 我可以创建一个 android 应用程序作为模板吗?