阻止子类重写接口

  • 本文关键字:接口 重写 子类 java
  • 更新时间 :
  • 英文 :


有没有办法防止子类覆盖超类实现的接口。

我想在android中创建一个包含listView的自定义视图,并实现onScroll侦听器,但当子类在列表上设置onScroll侦听器时。超级类中的侦听器永远不会被调用。

是的,有。

最后一个词是:final

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

考虑这个接口:

interface MyInter  {
   public void foo();
   public String bar();
}

还有你们班的

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";
   }
}

您可以添加final关键字来执行此操作。

例如:

public final void foo() {
    ....
}

最新更新