Java 解释错误:“引用;建造商… ;无法应用:实际长度和形式长度不同“;
请帮助我修复此错误: 类C10h1中的构造函数CollegeMember。CollegeMember不能为空 适用于给定类型;必填项:java.lang.String、java.lang.String; 发现:没有论点;原因:实际论点和形式论点在不同方面有所不同 长度 我还尝试添加一个默认构造函数来调用super,但它只是给了我另一个错误 代码:Java 解释错误:“引用;建造商… ;无法应用:实际长度和形式长度不同“;,java,constructor,arguments,Java,Constructor,Arguments,请帮助我修复此错误: 类C10h1中的构造函数CollegeMember。CollegeMember不能为空 适用于给定类型;必填项:java.lang.String、java.lang.String; 发现:没有论点;原因:实际论点和形式论点在不同方面有所不同 长度 我还尝试添加一个默认构造函数来调用super,但它只是给了我另一个错误 代码: class C10h1 { public static void main(String[] args) {
class C10h1
{
public static void main(String[] args)
{
Student s = new Student("Bert", 2, "555-5555");
System.out.println("name = " + s.getName());
System.out.println("year = " + s.getYear());
System.out.println("telephone = " + s.getTelNumber());
Professor p = new Professor("Jane", 1, "555-9999");
System.out.println("name = " + p.getName());
System.out.println("rank = " + p.getRank());
System.out.println("telephone = " + p.getTelNumber());
}
}
问题提示:
class C10h1
{
public static void main(String[] args)
{
Student s = new Student("Bert", 2, "555-5555");
System.out.println("name = " + s.getName());
System.out.println("year = " + s.getYear());
System.out.println("telephone = " + s.getTelNumber());
Professor p = new Professor("Jane", 1, "555-9999");
System.out.println("name = " + p.getName());
System.out.println("rank = " + p.getRank());
System.out.println("telephone = " + p.getTelNumber());
}
}
创建3个公共类:CollegeMember、Student和Professor。学生和教授是学院成员的子类。CollegeMember有一个字符串名称字段和一个字符串电话号码字段。它的构造函数有2个参数,为name和telNumber字段提供初始值。CollegeMember还有分别返回name和telNumber的访问器方法getName和getTelNumber。Student有一个int year字段(1=第一年,2=第二年,3=第三年,4=第四年)。其构造函数有3个参数:name、year和telNumber,为name、year和telNumber字段提供初始值。它还有一个访问器方法getYear,返回year。教授有一个整数等级字段(1=助理,2=助理,3=满)。它的构造函数有3个参数:name、rank和telNumber,它们为name、rank和telNumber字段提供初始值。它还有一个访问器方法getRank,返回rank。使用main方法创建C10h1类。在类文件中包含javadoc注释。使用javadoc创建文档文件
问题是你的
学生
构造函数。它需要链接到CollegeMember
构造函数,它应该这样做:
public Student(String name, int year, String telNumber) {
super(name, telNumber);
this.year = year;
}
同样,对于教授
,只需使用等级
,而不是年份
请注意,您不需要在这些构造函数中设置name
和telNumber
——这是链接到的CollegeMember
构造函数的工作。如果您将所有字段都设置为私有,那么您甚至无法尝试在子类中设置这些字段。。。这是有道理的,因为它们不是子类的责任
class Professor extends CollegeMember
{
int rank;
public Professor(String name, int rank, String telNumber)
{
name = super.getname();
rank = rank;
telNumber = super.getTelNumber();
}
public int getRank()
{
return rank;
}
}
public Student(String name, int year, String telNumber) {
super(name, telNumber);
this.year = year;
}