Super () без аргументов внутри означает, что нужно определить более одного аргумента?
Нет, super()
просто вызывает конструктор no-arg базового класса, в вашем случае Object
.
Это ничего не делает на самом деле. Это просто делает в коде явным то, что вы создаете базовый класс с помощью конструктора no-arg. Фактически, если вы пропустите super()
, он будет неявно добавлен обратно компилятором.
Так для чего же super()
, если он все равно добавлен неявно? Ну, в некоторых случаях класс не имеет конструктора без аргументов. Подклассы этого класса должны явно вызывать некоторый супер-конструктор, используя, например, super("hello")
.
this.lastName = lastName; //when is this used?, when more than one args to be entered?
this.lastName = lastName;
не имеет ничего общего с super()
. Это просто говорит о том, что значение аргумента конструктора lastName
должно быть присвоено переменной-члену lastName
. Это эквивалентно
public Contact(String contactId, String firstName, String lastNameArg,
String email, String phoneNumber) {
// ...
lastName = lastNameArg;
// ...