Java中的超级构造函数

92dk7w1h  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(127)

请解释一下

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"本身中定义。为什么我们在这里再次定义并调用它的参数?

dzhpxtsq

dzhpxtsq1#

    • 内部没有参数的Super()表示要定义多个参数?**

不,super()只是调用基类的无参数构造函数,在您的例子中是Object
它实际上什么也没做,它只是在代码中显式地表示,你正在用无参数构造函数构造基类,事实上,如果你没有把super()加进去,它会被编译器隐式地加回去。
那么如果super()是隐式添加的,那么super()的作用是什么呢?在某些情况下,类没有无参数构造函数。该类的子类 * 必须 * 显式调用某个超构造函数,例如使用super("hello")

    • 一个月五个月一个月**

this.lastName = lastName;super()没有任何关系,它只是声明构造函数参数lastName的值应该赋给成员变量lastName

public Contact(String contactId, String firstName, String lastNameArg,
               String email, String phoneNumber) {
    // ...
    lastName = lastNameArg;
    // ...
jaql4c8m

jaql4c8m2#

super()调用超类的默认(no-arg)构造函数,这是因为为了构造一个对象,你必须遍历层次结构中的所有构造函数。
super()可以省略-编译器会自动将其插入此处。
在您的示例中,超类是Object

相关问题