有没有办法防止子类覆盖超类实现的接口。
我想在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() {
....
}