Что делает метод super ()? - PullRequest
21 голосов
/ 25 мая 2011

Что делает супер метод?

public DataFetch(Context context) {
    super();
    this.ctx = context;
}

Этот конструктор делает контекст вновь созданного объекта контекстом суперкласса? Не уверен на 100%, как это работает. Так может ли метод super() просто сказать "перевести меня в режим суперкласса", чтобы сказать это с точки зрения непрофессионала?

Ответы [ 4 ]

35 голосов
/ 25 мая 2011

В нем говорится «инициализируйте мой родительский класс перед тем, как инициализировать меня», вызывая его конструктор по умолчанию.

9 голосов
/ 25 мая 2011

super() вызывает конструктор класса родителя (вплоть до Object) и выполняется перед конструктором текущего класса.

2 голосов
/ 25 мая 2011

Не существует такой вещи, как «контекст суперкласса», контекст - это интерфейс для доступа к информации из среды приложения, такой как ресурсы изображений, системные службы и т. Д.Контекст будет от того, что вы передаете, и не зависит от класса.Например, Activity - это реализация интерфейса Context, который вы, вероятно, будете использовать, и любое представление, которое вы делаете из этого действия, будет иметь тот же самый контекст, который фактически предоставляется этим действием.

0 голосов
/ 11 февраля 2017

При использовании в конструкторе ключевое слово super() отображается отдельно и должно использоваться перед использованием ключевого слова this. Ключевое слово this может затем использоваться для вызова функций родительского объекта.

...