Это действительно зависит от логики, которую реализует метод. Иногда его называют сначала, иногда в конце, а иногда и никогда. Например, если какой-то расчет из метода суперкласса действительно важен, то он будет вызываться первым. Или если попытка подсчета выполняется методом подкласса, но без хорошего результата (результат равен нулю) делается попытка по методу подкласса. На этот вопрос действительно нет хорошего ответа, за исключением того, что это действительно зависит.
Пример 1:
Поставщик этикетки, что экстраполирует время от Date
объекта и возвращает его в пользовательский интерфейс для показа:
public class TimeLabelProvider {
public String getText(Date element) {
//extrapolate time from the element
return time;
}
}
Поставщик ярлык, который экстраполирует как дата и время от объекта Date
и возвращает его в пользовательский интерфейс для отображения:
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:
Если ваш проект имеет иерархию глубоких классов для элементов пользовательского интерфейса, например.
DropDownField extends TextField extends Field extends AbstractField
Теперь каждый из классов добавлены некоторые элементы пользовательского интерфейса в этой области, например, добавил меню и маленькую стрелку справа от поля, TextField
добавил валидатор, AbstractTextField
добавил белый блок написать текст, и т.д ... для утилизации элементов вы должны сделать многоуровневую утилизацию, как это:
public class DropDownField extends TextField {
@Override
public void dispose() {
menu.dispose();
arrow.dispose();
//let text field dispose of its elements
super.dispose();
}
}
http://stackoverflow.com/questions/4994959/locations-of-super-calls-in-android-eclipse-plugin-generated-code-reliable – Neil
Вы путаете конструктор вызовов с вызовами методов (' super.method() '. Также ваш код не компилируется. –
Суперкласс в FIRST:' onRestoreInstanceState, onStop, onRestart, onStart'. Ваши коды: FIRST: 'onDestroy, onPause, onSaveInstanceState, onResume' –