首先我想澄清一下,我对此没有任何实际业务需求,这是一个纯理论问题。
假设我们有这两个接口(interface):
public interface SuperInterface {
void doSuperStaff();
void doComStaff();
}
public interface SubInterface extends SuperInterface {
// Something here to invalidate doSuperStaff()
}
有什么方法可以使/禁用所有实现SubInterface
的类的doSuperStaff()
?因此只有直接实现 SuperInterface
的类才能使用该方法并覆盖它。
注意:我知道我们可以从概念上解决这个问题,但我想知道是否有办法在技术上实现这一点:例如使用注释(如 @Deprectaed
,仅指示编译器该方法已弃用。)...
最佳答案
有限,但以下内容有点帮助。
public interface SubInterface extends SuperInterface {
@Deprecated
void doSuperStaff();
}
甚至
public interface SubInterface extends SuperInterface {
@Deprecated
default void doSuperStaff() {
throw new UnsupportedOperationException("...");
}
}
关于java - 如何使超接口(interface)方法失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695733/