请帮我修复此错误:
类C10h1.CollegeMember中的构造函数CollegeMember不可以 适用于给定类型; required:java.lang.String,java.lang.String; 发现:没有争论;原因:实际和正式的论点不同 长度
此外,我尝试添加一个默认构造函数来调用super,但它只是给了我一个错误!
代码:
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 CollegeMember
{
String name, telNumber;
public CollegeMember(String a, String b)
{
name = a;
telNumber = b;
}
public String getName()
{
return name;
}
public String getTelNumber()
{
return telNumber;
}
}
class Student extends CollegeMember
{
int year;
public Student(String name, int year, String telNumber)
{
name = super.getname();
year = year;
telNumber = super.getTelNumber();
}
public int getYear()
{
return year;
}
}
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;
}
}
问题提示:
创建3个公共课:CollegeMember,Student和Professor。学生和教授是CollegeMember的子类。 CollegeMember有一个String名称字段和一个字符串telNumber字段。它的构造函数有2个参数,它们为name和telNumber字段提供初始值。 CollegeMember还有访问方法getName和getTelNumber,分别返回name和telNumber。学生有一个int year字段(1 =第一年,2 =第二年,3 =第三年,4 =第四年)。它的构造函数有3个参数:name,year和telNumber,它们提供名称,年份的初始值,和telNumber字段。它还有一个访问方法getYear,它返回year。教授有一个int rank字段(1 =助理,2 =关联,3 =完整)。它的构造函数有3个参数:name,rank和telNumber,它们为name,rank和telNumber字段提供初始值。它还有一个返回排名的访问方法getRank。使用main方法创建C10h1类。在类文件中包含javadoc注释。使用javadoc创建文档文件。
答案 0 :(得分:1)
问题是你的Student
构造函数。它需要链接到CollegeMember
构造函数,它应该像这样:
public Student(String name, int year, String telNumber) {
super(name, telNumber);
this.year = year;
}
同样适用于Professor
,仅使用rank
代替year
请注意,不需要在这些构造函数中设置name
和telNumber
- 这是您正在链接到的CollegeMember
构造函数的工作。如果你将所有字段设为私有也会更好 - 那么你甚至无法尝试在子类中设置这些字段......这是有道理的,因为它们不是子类的责任。