请帮助我解决此错误:
C10h1.CollegeMember类中的构造方法CollegeMember不能应用于给定类型;必需: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具有字符串名称字段和字符串telNumber字段。它的构造函数有2个参数,它们为name和telNumber字段提供初始值。CollegeMember还具有访问器方法getName和getTelNumber,分别返回名称和telNumber。Student有一个int year字段(1 =第一年,2 =第二年,3 =第三年,4 =第四年)。其构造函数具有3个参数:name,year和telNumber,它们为name,year,和telNumber字段。它还具有返回年份的访问器方法getYear。教授具有int等级字段(1 =助理,2 =关联,3 =完整)。其构造函数具有3个参数:name,rank和telNumber,它们为name,rank,和telNumber字段。它还有一个访问器方法getRank返回等级。使用main方法创建一个C10h1类。在类文件中包含javadoc注释。使用javadoc创建文档文件。
问题是您的Student构造函数。它需要链接到CollegeMember构造函数,它应该像这样:
Student
CollegeMember
public Student(String name, int year, String telNumber) { super(name, telNumber); this.year = year; }
同样对于Professor,只用rank代替year
Professor
rank
year
请注意,您 并不 需要设置name并telNumber在这些构造- 这是的工作CollegeMember你要链接构造。如果将所有字段都设为私有,那也更好-那么您甚至无法 尝试 在子类中设置这些字段…这很有意义,因为它们不是子类的责任。
name
telNumber