java - 防止子类覆盖接口(interface)

标签 java

有没有办法防止子类重写 父类(super class)实现的接口(interface)。

我想在android中创建一个包含listView的自定义 View 并实现onScroll监听器,但是当子类在列表上设置onScroll监听器时。父类(super class)的监听器永远不会被调用。

最佳答案

是的,有。

最后一句话是:最终

通过声明方法final,您可以声明子类不允许@Override此方法(即使没有注释)。

考虑这个界面:

interface MyInter  {
   public void foo();

   public String bar();
}

还有你的类(class)

public class MyClass implements MyInter {

  @Override 
  public final void foo() {
    //Cant touch this
  }

  @Override
  public String bar() {
    return "foo";
  }

}

现在您的第三个类可以扩展 MyClass - 但仅限于覆盖 bar() 因为 foo()final 关键字保护:

public class Thirs extends MyClass {
   @Override
   public String bar() {
     return "bar";
   }
}

关于java - 防止子类覆盖接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34391737/

相关文章:

java - 根据其中一列将输入文件分成多个文件

java - 找不到 ID 为 'gwt' 的插件

关于多个类型参数的 Java 泛型问题

java - 在 android 中使用 Json 对象文件创建数组列表

java - 在 Java 应用程序中导入/导出 Google 联系人

java - 如何在禁用 IMAP/POP3 访问的情况下从 Gmail 获取电子邮件

Java 8 日期时间解析,可选 2-4 年组件

java - Spring为每个POST请求创建 session

java - 每当点击 php 时所有按钮功能

java - 使用自定义字符串分隔符解析 CSV 文件