子类是否可以在不重写的情况下增强super的方法?
问题描述:
考虑以下设置:子类是否可以在不重写的情况下增强super的方法?
- SomeFilter extends Filter
- Filter implements Runnable
- Filter provides run() implementation
有没有一种方法,使SomeFilter
使用它的super
的run()
和多一点?
内run()
逻辑是通用的足够
- MyFilter extends Filter
- MyOtherFilter extends Filter
,但不是为SomeFilter
,是想用它的超级的run()
并添加代码的一些额外的线路来处理它自己的具体情况?
是否有办法做到这一点,其他然后为SomeFilter
覆盖run()
一起?
答
是的。 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
假设你知道如何调用父类中的方法(使用super),你为什么要寻找一种“重写以外的方式”? – eternaln00b 2012-02-08 04:58:53