有沒有辦法阻止子類重寫實現超類實現的接口。防止子類重寫接口
我想在android中創建一個包含listView
的自定義視圖,並且實現onScroll
偵聽器,但是當子類設置onScroll
偵聽器的列表時。超類的監聽器從不被調用。
有沒有辦法阻止子類重寫實現超類實現的接口。防止子類重寫接口
我想在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
關鍵字來完成此操作。
E.g:
public final void foo() {
....
}
'final'關鍵字? – sidgate