java在重写时只调用“超级”实现有意义吗?
这是一个关于Java编程世界的奇怪问题
假设我的代码中有这个
public interface IDoSomethingAndSomethingElse {
int doSomething();
int doSomethingElse();
}
public abstract class AbstractDoSomethingAndSomethingElse implements IDoSomethingAndSomethingElse{
public int doSomething() {
return arcaneAndMysticalProceedings();
}
public abstract int doSomethingElse(); //thanks PM77-1
}
public class MyDoSomethingAndSomethingElse extends AbstractDoSomethingAndSomethingElse{
@Override
public int doSomething(){
return super.doSomething();
}
public int doSomethingElse(){
return mystiriousIncantation();
}
}
我的问题是:在具体实现中是否有必要像这样覆盖doSomething()?有什么用吗?你能想出一个有用的用例吗
编辑:使我的问题更精确一点;如果我没有像上面那样(实际上没有添加任何内容),是否会有一些情况会有所不同
# 1 楼答案
不,没有功能上的区别
我能想到的唯一区别是,在不重写它的情况下,该方法不是在该类上“声明”的,而是在超类上。例如:
在该示例中,
doSomething
仅针对B.class
列出