请解释一下
public class Contact {
private String contactId;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
public Contact(String contactId,String firstName, String lastName, String email, String phoneNumber) {
super(); //what does standalone super() define? With no args here?
this.firstName = firstName;
this.lastName = lastName; //when is this used?, when more than one args to be entered?
this.email = email;
this.phoneNumber = phoneNumber;
}
没有参数的Super()意味着有不止一个参数需要定义?这是在"www.example.com"的帮助下完成的吗?this.xxx" ?
为什么我们不在"公共类Contact"本身中定义。为什么我们在这里再次定义并调用它的参数?
2条答案
按热度按时间dzhpxtsq1#
不,
super()
只是调用基类的无参数构造函数,在您的例子中是Object
。它实际上什么也没做,它只是在代码中显式地表示,你正在用无参数构造函数构造基类,事实上,如果你没有把
super()
加进去,它会被编译器隐式地加回去。那么如果
super()
是隐式添加的,那么super()
的作用是什么呢?在某些情况下,类没有无参数构造函数。该类的子类 * 必须 * 显式调用某个超构造函数,例如使用super("hello")
。this.lastName = lastName;
与super()
没有任何关系,它只是声明构造函数参数lastName
的值应该赋给成员变量lastName
。jaql4c8m2#
super()
调用超类的默认(no-arg)构造函数,这是因为为了构造一个对象,你必须遍历层次结构中的所有构造函数。super()
可以省略-编译器会自动将其插入此处。在您的示例中,超类是
Object