这实际上取决于该方法实现的逻辑。有时首先调用它,有时在最后调用,有时从不调用。例如,如果超类方法的某些计算非常重要,那么它会首先被调用。或者如果在子类方法中尝试计算但没有好的结果(结果为空)尝试在子类方法上进行。这个问题真的没有很好的答案,除了它真的取决于。
示例 1:
从对象推断时间Date
并将其返回到 UI 以显示的标签提供程序:
public class TimeLabelProvider {
public String getText(Date element) {
//extrapolate time from the element
return time;
}
}
从对象推断日期和时间Date
并将其返回到 UI 以显示的标签提供程序:
public class DateTimeLabelProvider extends TimeLabelProvider {
@Override
public String getText(Date element) {
//extrapolate date from the element
String date = ...
//now get time string. We don't need to repeat logic,
//its already implemented in super method!
String time = super.getText(element);
return date + " " + time;
}
}
示例 2:
如果您的项目对 UI 元素有较深的类层次结构,例如
DropDownField extends TextField extends Field extends AbstractField
现在,每个类都在字段中添加了一些 UI 元素,例如,DropDownField
在字段的右侧添加了一个菜单和一个小箭头,TextField
添加了一个验证器,AbstractTextField
添加了一个白色块来写入文本,等等......您将不得不像这样进行多级处置:
public class DropDownField extends TextField {
@Override
public void dispose() {
menu.dispose();
arrow.dispose();
//let text field dispose of its elements
super.dispose();
}
}