我正在阅读一段代码,它是这样完成的,我想了解它为什么这样做:
public abstract class Class2 extends Class1 {
...
@Override
public ObjectType someFunction() {
ObjectType var = super.someFunction();
....
return var;
}
}
因此 someFunction() 方法已被覆盖,并在其中再次调用父级的 someFunction() 。 这对你有意义吗?这样做的动机是什么?
最佳答案
如果你不想复制整个被覆盖方法的代码,但你想稍微改变一下逻辑或者你想添加一点代码,那么你可以调用被覆盖的方法并提供附加代码。
这可以防止希望重写方法但保留某些行为的子类中的代码和逻辑重复。
正如 yshavit 在评论中指出的那样,调用重写方法可能是访问父类(super class)中 private
数据的唯一方法。
关于java - 为什么要覆盖父类(super class)并在函数内部再次调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199325/