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