[英]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.