В общем, super
будет вызывать его родительский конструктор с соответствующими аргументами. В этом случае, поскольку AbstractList
имеет неявный конструктор no-arg, мы используем super()
без аргументов для вызова неявного конструктора no-arg.
Что касается Почему - в этом случае нет причин для этого, если нет требования устанавливать поля в родительском классе. Возможно, это был случай более старого стиля программирования.
Это не вредит, и это самодокументируется; он явно выражается в том, что он вызывает конструктор своего родителя. Хотя, отмечу, что Javadoc для этого конструктора вызывает свою полезность вызова:
/**
* Sole constructor. (For invocation by subclass constructors, typically
* implicit.)
*/
Вы больше шансов увидеть неявные вызовы этого конструктора, чем явные.
Вы хотите знать, что делает 'super' вообще, или почему' super' используется в этом контексте? – Makoto
В этом контексте – zeds