2011-06-22 125 views
0

状况:说有一个A类和接口B.强制接口实现

需要量:如果任何一类,说C,想要创建和使用的对象他们,那么这个类也将不得不实现接口B.是否有任何方法来执行这个条件?

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

+0

请详细说明问题更具体。 'A','B'和'C'对于我们来说太抽象了,无法把握你想要做的事情。你最喜欢什么类/接口?就目前而言,你的问题没有多大意义。 – Asaph

+0

我有一个名为Agent的类和一个AgentInterface接口。现在,任何想要使用代理的类(这些类将由其他人编写,而不是由我编写)将不得不创建代理对象,对吧?但我想在这里执行一个条件。如果需要使用类Agent,我还希望该类实现AgentInterface。是否可以强制执行这样的条件?如果不是,我能以什么方式实现这样的事情? – aps

+0

Mukherjee:我还是不明白你的设计。 'AgentInterface'包含哪些方法? – Asaph

回答

0

既然你说A类的对象将拜会C方法,他们将不得不继续参考C莫名其妙。请使用B类型的此参考,然后完成。

也就是说

public class A { 
    public A(B arg) { 
    .... 
    } 
} 

然后在C

A a = new A(this); 

这将迫使C类来实现接口B

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); 
    } 

}