java - 如何使超接口(interface)方法失效

标签 java inheritance interface

首先我想澄清一下,我对此没有任何实际业务需求,这是一个纯理论问题。

假设我们有这两个接口(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/

相关文章:

c++ - 错误 C2614 : 'ChildClass' : illegal member initialization: 'var1' is not a base or member

android - Android 的 MVP 模式(DI - 接口(interface))

java - Java中是否可以为接口(interface)创建注释,强制实现类的构造函数的特定参数列表

java - 如果我覆盖 .equals(),是否需要覆盖 .hashCode(),即使我不使用 HashMap?

java - 位桶服务器的 Haproxy 配置

java - 如何在android中的水平 ScrollView 中添加多个 child

c++ - GCC 无法使用 init-capture 捕获 'this' 指向模板类型的指针

java拷贝构造函数和继承

java - 如何在通配符操作映射中处理单一形式的多个操作?

delphi - 没有泛型的接口(interface)继承