我可以在构造函数中传递多个 Super 调用吗?
Can I pass multiple Super calls in a constructor?
嗨,我基本上收到一条错误消息,说,
constructor Member in class Member cannot be applied to given types;
required: java.lang.String,java.lang.String; found:java.lang.String;
reason: actual and formal argument lists differ in length
但我不确定为什么,我想可能是因为我不允许在构造函数中传递多个超级调用?这是正确的吗?
这是我的超级 class,其中包含姓名和电子邮件
public class Member
{
// The teacher's or Student's name.
private String name;
// The teacher's or Student's email;
private String email;
/**
* Constructor for objects of class Member
*/
public Member(String name,String emailID)
{
this.name = name;
email = emailID;
}
}
这是子class的构造函数,我在尝试编译时遇到错误。
public Student(String name, String emailID)
{
super(name);
super(emailID);
attendance = 0;
}
根据我的理解,这应该可以正常工作,但事实并非如此,谁能解释一下为什么这不起作用?
谢谢
无法运行,因为super class需要两个参数,而你只是一个一个地提供,所以第一个构造函数super(name);
无法编译,所以会出现这样的错误。所以你应该像这样把它们一起传递:
super(name, emailID);
编辑:此外,您只能调用一次超级构造函数,而且它应该是第一个调用的。
尝试这样称呼它:
public Student(String name, String emailID)
{
super(name,emailID);
attendance = 0;
}
嗨,我基本上收到一条错误消息,说,
constructor Member in class Member cannot be applied to given types;
required: java.lang.String,java.lang.String; found:java.lang.String;
reason: actual and formal argument lists differ in length
但我不确定为什么,我想可能是因为我不允许在构造函数中传递多个超级调用?这是正确的吗?
这是我的超级 class,其中包含姓名和电子邮件
public class Member
{
// The teacher's or Student's name.
private String name;
// The teacher's or Student's email;
private String email;
/**
* Constructor for objects of class Member
*/
public Member(String name,String emailID)
{
this.name = name;
email = emailID;
}
}
这是子class的构造函数,我在尝试编译时遇到错误。
public Student(String name, String emailID)
{
super(name);
super(emailID);
attendance = 0;
}
根据我的理解,这应该可以正常工作,但事实并非如此,谁能解释一下为什么这不起作用?
谢谢
无法运行,因为super class需要两个参数,而你只是一个一个地提供,所以第一个构造函数super(name);
无法编译,所以会出现这样的错误。所以你应该像这样把它们一起传递:
super(name, emailID);
编辑:此外,您只能调用一次超级构造函数,而且它应该是第一个调用的。
尝试这样称呼它:
public Student(String name, String emailID)
{
super(name,emailID);
attendance = 0;
}