解释错误:“构造函数……不能应用:实际和forms的长度不同”

请帮我修复此错误:

类C10h1.CollegeMember中的构造函数CollegeMember不能应用于给定类型; required:java.lang.String,java.lang.String; 发现:没有争论; 原因:实际和正式的论点长度不同

此外,我尝试添加一个默认构造函数来调用超级但它只是给了我另一个错误!

码:

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 name字段和一个字符串telNumber字段。 它的构造函数有2个参数,它们为name和telNumber字段提供初始值。 CollegeMember还有访问方法getName和getTelNumber,分别返回name和telNumber。 学生有一个int年字段(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创建文档文件。

问题是你的Student构造函数。 它需要链接到CollegeMember构造函数,它应该像这样:

 public Student(String name, int year, String telNumber) { super(name, telNumber); this.year = year; } 

同样对于Professor ,只是rank而不是year

请注意,您不需要在这些构造函数中设置nametelNumber – 这是您正在链接的CollegeMember构造函数的工作。 如果你将所有字段设为私有也会更好 – 那么你甚至无法尝试在子类中设置这些字段……这是有道理的,因为它们不是子类的责任。