假设有一个类的方法非常接近您想要的方法 - 方法中只需要更改一行。如果不允许更改超类,是否有任何方法可以从超类继承而不复制要更改的方法中的所有代码?
答案 0 :(得分:5)
简答:没有
答案很长:可能在某些情况下
例如,如果a()
做了我可以在最后处理额外行为的事情,那么你可以在新类中调用它然后添加其他行为。
@Override
public void a() {
super.a();
// do something else here
}
如果super.a()
中间有一条线无法执行,那么你运气不好。如果可以在事后“清理”不良行为,那么这是可能的。
答案 1 :(得分:0)
继承中不可能这样做,继承意味着您从Parent类扩展功能并在子类中使用它,如果从超类重写该方法,则替换它。 你也不能像你说的那样改变父方法,所以你应该重新实现方法。
我认为如果您向我们提供有关父类和方法的更多详细信息,我们可以提供更多帮助,并找到另一种方法来解决您的问题。