gpt4 book ai didi

java - 为什么我们需要 ArrayList 构造函数中的 super()?

转载 作者:行者123 更新时间:2023-11-30 08:18:49 25 4
gpt4 key购买 nike

这段代码来自 ArrayList 来源:

public ArrayList() {
super();
this.elementData = EMPTY_ELEMENTDATA;
}

此代码来自 AbstractList 来源:

protected AbstractList() {
}

super() 有什么作用?

最佳答案

通常,super 将使用匹配的参数调用其父构造函数。在这种情况下,因为 AbstractList 有一个隐式无参数构造函数,我们使用不带参数的 super() 来调用隐式无参数构造函数。

至于为什么 - 如果不需要在父类中设置字段,在这种情况下真的没有理由这样做。这可能是旧式编程的一个例子。

它没有害处,而且是 self 记录的;它是显式的,因为它调用其父级的构造函数。虽然,我会注意到该构造函数的 Javadoc 调用了它的调用有用性:

/**
* Sole constructor. (For invocation by subclass constructors, typically
* implicit.)
*/

与显式调用相比,您更有可能看到该构造函数的隐式调用。

关于java - 为什么我们需要 ArrayList 构造函数中的 super()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com