情况:假设有A类和B接口。
要求:如果任何类(比如C)想要创建A的对象并使用它们,那么该类还必须实现接口B.是否有任何方法可以强制执行此条件?< / p>
为什么:现在可能会出现一个问题,为什么我要做这样的事情。原因是当C类创建A的对象并使用它们时,那些对象会调用C的某些方法。我想在接口B中声明这些方法,这样C将总是实现这些方法。
答案 0 :(得分:1)
试试这个代码段:
public interface B {
// methods
}
public class A {
private final B b;
public A(B b) {
this.b = b;
}
...
}
public class C implements B{
// implement B's methods
public static void main(String[] arg) {
C c = new C();
A a = new A(c);
}
}
答案 1 :(得分:0)
由于您说类A
的对象会调用C
上的方法,因此他们必须以某种方式继续引用C
。对B
类型进行引用,您就完成了。
那是
public class A {
public A(B arg) {
....
}
}
然后在C
:
A a = new A(this);
这将迫使C类实现接口B
。