假设有一个类的方法非常接近你想要的方法 - 只需要改变方法中的一行.如果不允许更改超类,是否有任何方法可以从超类继承而不复制要更改的方法中的所有代码?
简答:不
答案很长:可能在某些情况下
例如,如果a()我可以在最后处理额外行为,那么您可以在新类中调用它,然后添加其他行为.
@Override
public void a() {
super.a();
// do something else here
}
Run Code Online (Sandbox Code Playgroud)
如果中间有一条线super.a()无法执行那么你运气不好.如果可以在事后"清理"不希望的行为,那么这是可能的.