执行接口实现以使用另一个类

时间:2011-06-22 04:56:18

标签: java interface

情况:假设有A类和B接口。

要求:如果任何类(比如C)想要创建A的对象并使用它们,那么该类还必须实现接口B.是否有任何方法可以强制执行此条件?< / p>

为什么:现在可能会出现一个问题,为什么我要做这样的事情。原因是当C类创建A的对象并使用它们时,那​​些对象会调用C的某些方法。我想在接口B中声明这些方法,这样C将总是实现这些方法。

2 个答案:

答案 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