扩展gridview时,为什么需要在构造函数中调用super?

时间:2019-07-08 08:11:36

标签: java android gridview

我像这样的Kishanjvaghela's github示例或Raj008的答案(在堆栈溢出中)实现了ExpandedGridView。

它工作正常,但我想知道为什么它需要在构造函数中调用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 :(得分:0)

因为默认情况下(可选)super()关键字将调用no-arg构造函数,所以要调用父类的带参数的构造函数,必须使用参数来编写super()关键字

只看构造函数链接是如何工作的