我正在编码接口。
我有一个接口A和一个实现它的类B。
有人告诉我,我可以通过用C扩展 B 来覆盖B 的功能,但我被要求既不触及B也不触及C,然后在配置文件中将B替换为C作为A的实现类。
我想我需要一个在A中不可用的方法,所以我需要向A添加一个可以在C中实现的方法。但我不允许触摸A。
有人可以帮我解决怎么做吗?
谢谢。
编辑: 示例代码:
爪哇
public interface A {
void X();
void Y();
}
B.java
public class B implements A {
public void X() {//something interesting}
public void Y() {//something not very interesting}
}
现在因为我不被允许触摸,A
或者B
我不得不编写另一个类C
并将其从 B 扩展来做我的事情。
C.java
public class C extends B {
public void Y() {//overriding B's not very interesting Y and making it interesting}
}
现在我需要 C.java中的另一个方法来做我的事情,但是因为如果我void Z()
在C.java上添加一个方法同时使用引用变量我将无法调用,所以我必须在接口中声明为像那样使用它很好,但如果我这样做,我将不得不触摸我不允许触摸的东西。所以如何解决这个问题是我一直想问的。A
A's
Z()
void Z()
A
A
所以本质上,我将无法执行以下操作:
A a = new C();
a.Z(); //can't do this
那么有什么方法可以让我在不触及 A 或 B 的情况下实现这样的目标吗?