此代码来自ArrayList源:
public ArrayList() {
super();
this.elementData = EMPTY_ELEMENTDATA;
}
此代码来自AbstractList源:
protected AbstractList() {
}
super()有什么作用?
通常,super
将使用匹配的参数调用其父构造函数。在这种情况下,由于AbstractList
具有隐式的无参数构造函数,因此我们super()
不带任何参数来调用隐式的无参数构造函数。
至于为什么-如果不需要在父类中设置字段,在这种情况下,实际上没有理由这样做。这可能是较旧的编程风格的情况。
它没有害处,并且是自我记录;它的显式之处在于它调用其父级的构造函数。虽然,我会注意到该构造函数的Javadoc调用了它的调用有用性:
/**
* Sole constructor. (For invocation by subclass constructors, typically
* implicit.)
*/
与显式相比,您更有可能看到该构造函数的隐式调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句