有时,派生类应始终调用基本实现。我应该在子类特定代码之前或之后放置调用语句。例如:
boolean foo(T x) {
super.foo(x);
....blabla...; //< derived calss-specific code
return true;
}
OR
boolean foo(T x)
{
....blabla...; //< derived calss-specific code
return super.foo(x);
}
如何针对不同的情况做出正确的决定?
提前致谢。
答案 0 :(得分:3)
答案取决于超类方法的作用以及子类方法的作用。
如果必须在之前完成超类完成的工作,请先调用super调用。如果超级类完成的工作必须在之后完成,请将超级调用放在之后。如果必须在超类方法之前完成一些工作,之后必须进行一些工作,那么就把它放在两者之间。
如果顺序无关紧要,通常的方法是在开头调用超类方法。