2011-06-22 54 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); 
    } 

}