При расширении gridview зачем вызывать super в конструкторе? - PullRequest
0 голосов
/ 08 июля 2019

Я реализовал ExtendedGridView, как этот Пример github Кишанжвагхела или ответ Raj008 в переполнении стека.

Он работает нормально, но мне интересно, зачем это нужнодля вызова super() в конструкторе

public class ExpandableHeightGridView extends GridView {
    boolean expanded = false;

    public ExpandableHeightGridView(Context context) {
        super(context);
    }

    public ExpandableHeightGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ExpandableHeightGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
/* more code here */
}

Если конструктора нет, java должен вызывать родительский конструктор, не так ли?

1 Ответ

0 голосов
/ 08 июля 2019

Поскольку по умолчанию (необязательно) ключевое слово super() будет вызывать конструктор без аргументов, поэтому для вызова аргументированного конструктора родительского класса необходимо написать super() ключевое слово с аргументами

, просто посмотрите, как работает построение цепочек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...