2012-02-08 49 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

相关问题