2012-02-08 47 views
0

考慮以下設置:子類是否可以在不重寫的情況下增強super的方法?

- SomeFilter extends Filter 
- Filter implements Runnable 
- Filter provides run() implementation 

有沒有一種方法,使SomeFilter使用它的superrun()和多一點?

run()邏輯是通用的足夠

- MyFilter extends Filter 
- MyOtherFilter extends Filter 

,但不是爲SomeFilter,是想用它的超級的run()並添加代碼的一些額外的線路來處理它自己的具體情況?

是否有辦法做到這一點,其他然後SomeFilter覆蓋run()一起?

+2

假設你知道如何調用父類中的方法(使用super),你爲什麼要尋找一種「重寫以外的方式」? – eternaln00b 2012-02-08 04:58:53

回答

5

是的。 Inside SomeFilter:

@Override 
public void run(){ 
    super.run(); 
    // custom run code 

} 
+0

如果這與Runnable接口中的「運行」相同,則它不能是私有的。 – eternaln00b 2012-02-08 04:57:33

+1

東西沒有加起來。 (1)過濾器實現'java.lang.Runnable'。 (2)'java.lang.Runnable'具有公共運行方法。怎麼能'super.run'不可見? – emory 2012-02-08 04:58:07

相關問題