簡體   English   中英

我可以阻止實現接口嗎?

[英]Can I prevent an interface from being implemented?

我有以下情況:

public interface A {
    void doSomethingCool();
}

public interface B extends A {
    void doSomethingVeryBCool();
}
public interface C extends A {
    void doSomethingVeryCCool();
}

在我的應用程序中,我只能使用實現B或C的類。但是在代碼的某些部分中,我想使用“ a.doSomethingCool()”,因為我不知道(也不在乎)哪個實現是用過的。

我可以強制說只有B和C的實現嗎? 還是阻止實現接口A?

您不能直接強制執行未實現的接口,但是可以將接口設置為本地包:

interface A {...} //no public

這樣,該包外部的類將看不到該接口。

編輯:但是,這確實意味着您不能做類似的事情

A a = getA();

在包裝之外,因為A無法解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM